recherche avec php gans une base

recherche avec php gans une base - PHP - Programmation

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 />"; }}
?>

Citation :


Reply

Marsh Posté le 12-08-2010 à 16:33:41   

Reply

Marsh Posté le 12-08-2010 à 16:46:21    

fatma1989 a écrit :


//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 />"; }}
?>

 

 :hello:

 

tu as zappé le $reslt=mysql_query(...)
tu aura donc:
if(! ($reslt=mysql_query(...))

 

dis-moi si ça fonctionne comme ça.


Message édité par skp94 le 12-08-2010 à 16:46:35
Reply

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

Reply

Marsh Posté le 12-08-2010 à 18:16:16    

svp aidez moi :( cest trés urgent merciiii infinement

Reply

Marsh Posté le 12-08-2010 à 18:18:15    

fais un mysql_error pour voir ce qui se passe


Message édité par stealth35 le 12-08-2010 à 18:19:41
Reply

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

Reply

Marsh Posté le 12-08-2010 à 18:48:13    

fais
 
if (!mysql_query($reslt))
{  
echo mysql_error() . " nexiste pas";
}
else{

Reply

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
++


Message édité par skp94 le 12-08-2010 à 22:38:52
Reply

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????

Reply

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'];
  }
}
?>

Reply

Marsh Posté le 13-08-2010 à 22:36:57   

Reply

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
++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed