recherche avec php gans une base - PHP - Programmation
Marsh Posté le 12-08-2010 à 16:46:21
fatma1989 a écrit :
|
tu as zappé le $reslt=mysql_query(...)
tu aura donc:
if(! ($reslt=mysql_query(...))
dis-moi si ça fonctionne comme ça.
Marsh Posté le 12-08-2010 à 17:21:12
nn ça fonctionne pas le probleme méme si le materiel existe dans la base de données il m'affiche le message n'existe pas
Marsh Posté le 12-08-2010 à 18:18:15
fais un mysql_error pour voir ce qui se passe
Marsh Posté le 12-08-2010 à 18:26:51
le probleme que la condition(si) ne fonctionne pas meme si je donne une valeur existe dans la base le msg n'existe pas s'affiche
Marsh Posté le 12-08-2010 à 18:48:13
fais
if (!mysql_query($reslt))
{
echo mysql_error() . " nexiste pas";
}
else{
Marsh Posté le 12-08-2010 à 22:37:25
Fais d'abord ce que stealth35 t'as dit et post le message d'erreur (si message il y a).
Tu peu aussi mettre "mysql_query(...)or die(mysql_error);"
Dans le cas où il n'y aurait pas de message, change ton test if par:
if(mysql_query(...)==FALSE)
vérifie également par un echo ta variable $_POST['idmateriel']:
echo "|$_POST['idmateriel']|<br>";
s'il y a des espace superflux, les "|" te le montreront.
[je me répète un peu, même si ton problème ne vient pas de là, tu as oublié de mettre $reslt=mysql_query(...) ceci implique que ta prochaine erreur sera le mysql_fetch_array($reslt) qui ne fonctionnera pas (ou alors tu va m'apprendre un truc de fou!!!) ]
On se reparle demain
++
Marsh Posté le 13-08-2010 à 17:36:08
oui maintenant l'erreur est mysql_fetch_array Warning: mysql_fetch_row() expects parameter 1 to be resource????
Marsh Posté le 13-08-2010 à 22:36:57
j'ai corrigé le script mais il reste un seul probleme quand le materiel n'existe pas le script ne m'affich rien j'aime qu'il n'affiche n'existe pas??
<?php
//Declaration des parametres de connexion
$host="localhost";
$user="root";
$bdd="parcinfo";
$password= "";
//Connexion au serveur
$con=@mysql_pconnect($host,$user,$password);
//Connexion a la base
mysql_select_db($bdd);
//Recuperation des resultats
$idmateriel=$_POST['idmateriel'];
$date=$_POST['date'];
$prix=$_POST['prix'];
$garantie=$_POST['garantie'];
//recherche
$query = sprintf("SELECT idmateriel FROM materiel WHERE idmateriel=%s", mysql_real_escape_string($idmateriel));
$result = mysql_query($query);
if (!$result)
{
echo "nexiste pas";
}
else
{
while ($row = mysql_fetch_array($result))
{
echo $row['idmateriel'];
}
}
?>
Marsh Posté le 13-08-2010 à 23:26:54
Je pense que c'est parce que ta requête ne renvoie plus FALSE à cause du mysql_real_escape_string.
Fais des echo de $result avant et après un $result=mysql_fetch_array($result)
juste pour voir.
Si tu n'as ni 'NULL' ni '0' c'est que tu devra changer ton test if() en conséquence.
Pourrais-tu nous expliquer ce qui n'allait pas dans ton code (ce que tu as corrigé); ça peut être utile à d'autre personne.
bon courage
++
Marsh Posté le 12-08-2010 à 16:33:41
Bonjour:
J'aimerai faire une fonction de recherche qui me permet d'afficher si le materiel recherché existe ou non, et s'il existe il va m'afficher ces caractéristique sous forme d'un tableau.
j'ai une table materiel. la recherche s'effectura si on donne l'id du materiel exact. si vous pouviez m'aidez a corriger mon script.
merci d'avance.
voici mon script:
<?php
//Declaration des parametres de connexion
$host="localhost";
$user="root";
$bdd="parcinfo";
$password= "";
//Connexion au serveur
$con=@mysql_pconnect($host,$user,$password);
//Connexion a la base
mysql_select_db($bdd);
//Recuperation des resultats
$idmateriel=$_POST['idmateriel'];
$date=$_POST['date'];
$prix=$_POST['prix'];
$garantie=$_POST['garantie'];
//recherche
$reslt="SELECT idmateriel FROM materiel WHERE idmateriel=\"$idmateriel\"";
if (!mysql_query($reslt))
{ echo "nexiste pas";}
else{
while($row = mysql_fetch_array($reslt))
{ echo $row['idmateriel'] . " " . $row['date'] . " " . $row['prix'] . " " . $row['garantie'];
echo "<br />"; }}
?>