Erreur!!!!Aidez-moi

Déline Messages postés 27 Statut Membre -  
Déline Messages postés 27 Statut Membre -
Bonjour,

je veux afficher la liste des patients correspondants à un medecin. j'avais fais ça a partir d'un formulaire où on peut recupérer les donnees; mais ya une erreur là je comprends pas. je voous donne le code:

code en HTML:

<html>
<head>
<title>essai2</title>
</head>
<body>

<form action="requetes.php" method="GET">
nom : <input type=text size=10 name="fnom"><p>
<p> sexe : <input type=text size=5 name="fsexe"><p>
<p> groupe sanguin : <input type=text size=5 name="fgroupesanguin"><p>

<input type=submit value="consulter">
<input type=reset value="annuler">
</body>
</html>

et le code PHP:

<?php

//connexion au serveur
mysql_connect("localhost", "root", "") or die ("erreur de connexion au serveur");

//connexion à la base
mysql_select_db("medicaldb") or die ("erreur de connexion à la base");

//récupérer les données issues du formulaire
$nom=$_GET["fnom"];
$sexe=$_GET["fsexe"];
$groupesanguin=$_GET["fgroupesanguin"];

//requete pour interroger la table avec une condition
$query =" SELECT matricule, nom_patient, prenom_patient, anneenaiss, sexe_patient, etat_civil, nombre_enfant, antecedents_familiaux, antecedents_medicaux, antecedents_chirurgicaux, allergies, groupe_sanguin FROM patient";
$query.=" WHERE (nom_patient LIKE ".'"%'. $nom .'%"'.")" ;
$query.=" AND (sexe_patient LIKE ".'"%'. $sexe .'%"'.")";
$query.=" AND (groupe_sanguin LIKE ".'"%'. $groupesanguin .'%"'.")";

$result=mysql_query($query);

echo "$query";

//déclare le tableau qui va contenir les données
$table ="<table border><tr><th>MATRICULE</th><th>NOM</th>";
$table.="<th>PRENOM</th><th>ANNEENAISS</th><th>SEXE</th>";
$table.="<th>ETAT_CIVIL</th><th>NOMBRE_ENFANT</th>";
$table.="<th>ANTECEDENTS_FAMILIAUX</th><th>ANTECEDENTS_MEDICAUX</th>";
$table.="<th>ANTECEDENTS_CHIRURGICAUX</th><th>ALLERGIES</th>";
$table.="<th>GROUPE_SANGUIN</th>";

//recuperation des donnees
while($ligne = mysql_query($result))
{ $table.="<tr><td> ".$ligne["matricule"]." </td>";
$table.="<td> ".$ligne["nom_patient"]." </td>";
$table.="<td> ".$ligne["prenom_patient"]." </td>";
$table.="<td> ".$ligne["anneenaiss"]."</td>";
$table.="<td> ".$ligne["sexe_patient"]."</td>";
$table.="<td> ".$ligne["etat_civil"]."</td>";
$table.="<td> ".$ligne["nombre_enfant"]."</td>";
$table.="<td> ".$ligne["antecedents_familiaux"]."</td>";
$table.="<td> ".$ligne["antecedents_medicaux"]."</td>";
$table.="<td> ".$ligne["antecedents_chirurgicaux"]."</td>";
$table.="<td> ".$ligne["allergies"]."</td>";
$table.="<td> ".$ligne["groupe_sanguin"]."</td>";
}
//affiche la table
echo "$table<br>";

?>

l'erreur se trouve au niveau de mysql_query($resultat); jai essayé avec mysql_fetch_array, mysql_fetch_row et mysql_num_rows on ne m'affiche rien toujours!!!

Aidez moi SVP!!!!!

9 réponses

Alain42
 
Bonjour,

Utilises notepad++ pour écrire ton code, il t'aurait grisé à partir de la ligne 49, donc erreur à la ligne 48: il te manque " à la fin:

$table.="<th>ANTECEDENTS_CHIRURGICAUX</th><th>ALLERGIES</th>& quot;;

=>

$table.="<th>ANTECEDENTS_CHIRURGICAUX</th><th>ALLERGIES</th>& quot;";


ensuite ta boucle while:
il faut mysql_fetch_...

et il te manquait le </tr> à la fin de la boucle pour changer de ligne

//recuperation des donnees
while($ligne = mysql_fetch_array($result)){
	$table.="<tr><td> ".$ligne["matricule"]." </td>";
	$table.="<td> ".$ligne["nom_patient"]." </td>";
	$table.="<td> ".$ligne["prenom_patient"]." </td>";
	$table.="<td> ".$ligne["anneenaiss"]."</td>";
	$table.="<td> ".$ligne["sexe_patient"]."</td>";
	$table.="<td> ".$ligne["etat_civil"]."</td>";
	$table.="<td> ".$ligne["nombre_enfant"]."</td>";
	$table.="<td> ".$ligne["antecedents_familiaux"]."</td>";
	$table.="<td> ".$ligne["antecedents_medicaux"]."</td>";
	$table.="<td> ".$ligne["antecedents_chirurgicaux"]."</td>";
	$table.="<td> ".$ligne["allergies"]."</td>";
	$table.="<td> ".$ligne["groupe_sanguin"]."</td></tr>";
	$table.="</tr>";
}


ensuite utilises plutot la method POST

Voilà

@lain
0
Déline Messages postés 27 Statut Membre
 
merci de me repondre mais il y'a toujours cette erreur là:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\php\requetes.php on line 37
& amp; quot

merci beaucoup!!!!
0
Alain42
 
Alors tu dois avoir des erreurs avant, soit à la connexion à la base mais la tu as prévu un message, par contre au moment de l'exécution de la requette tu n'as pas tracé d'erreur.
Tes ' et " sont bizarres dans ta query

Fais comme ça:

//connexion au serveur
mysql_connect("localhost", "root", "") or die ("erreur de connexion au serveur ".mysql_error());

//connexion à la base
mysql_select_db("medicaldb") or die ("erreur de connexion à la base ".mysql_error());

//récupérer les données issues du formulaire
$nom=$_GET["fnom"];
$sexe=$_GET["fsexe"];
$groupesanguin=$_GET["fgroupesanguin"];


//requete pour interroger la table avec une condition
$query =" SELECT * FROM patient WHERE nom_patient LIKE '%".$nom."%' AND sexe_patient LIKE '%".$sexe."%'' AND groupe_sanguin LIKE '%".$groupesanguin."%' ";

$result=mysql_query($query) or die ("Erreur requette ".mysql_error());




Mais avec les LIKE tu vas sortir tous les enr qui ont une partie du nom et une partie du groupe sanguin et une partir du sexe ??

si tu veux vraiement que ceux qui correspondent exactement aux mots du formulaire fais la requette comme ça:

$query =" SELECT * FROM patient WHERE nom_patient = '".$nom."' AND sexe_patient = '".$sexe."'' AND groupe_sanguin = '".$groupesanguin."' ";

$result=mysql_query($query) or die ("Erreur requette ".mysql_error());
0
Déline Messages postés 27 Statut Membre
 
bonjour, j'ai essaué mais y'a un petit problème encore; il cette erreur là: Erreur requete Erreur de syntaxe près de '''' AND groupe_sanguin = ''' à la ligne 1

je ne sais pas ce que ça veut dire..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Déline Messages postés 27 Statut Membre
 
bon j'ai essayé de rectifié ce petit intrus. mais on ne m'affiche toujours pas les patients;
je ne sais à koi cè due!!!!!
0
Alain42
 
Bonjour,

donc c'est bien ce que je pensait, une erreur dans la requette.

il doit y avoir une ' ou " qui traine dans le coin

essaye de faire un echo de ta requette réelle:

$query =" SELECT * FROM patient WHERE nom_patient = '".$nom."' AND sexe_patient = '".$sexe."'' AND groupe_sanguin = '".$groupesanguin."' ";

echo "Requette: ".$query."<br>";

$result=mysql_query($query) or die ("Erreur requette ".mysql_error());


et donnes moi le résultat de cet echo
0
Déline Messages postés 27 Statut Membre
 
je l'ai fait mais on m'affiche toute la requete: voilà

requete: SELECT matricule, nom_patient, prenom_patient, anneenaiss, sexe_patient, etat_civil, nombre_enfant, ant_familiaux, ant_medicaux, ant_chirurgicaux, allergies, groupe_sanguin FROM patient WHERE nom_patient = 'kante' AND sexe_patient = 'm' AND groupe_sanguin = 'b'
SELECT matricule, nom_patient, prenom_patient, anneenaiss, sexe_patient, etat_civil, nombre_enfant, ant_familiaux, ant_medicaux, ant_chirurgicaux, allergies, groupe_sanguin FROM patient WHERE nom_patient = 'kante' AND sexe_patient = 'm' AND groupe_sanguin = 'b'
0
Alain42
 
Oui c'est normal que ça t'affiche la requette c'était le but.

Je ne vois pas d'erreur, mais essayes avec cette requette:

$query ="SELECT * FROM patient WHERE nom_patient = '".$nom."' AND sexe_patient = '".$sexe."'' AND groupe_sanguin = '".$groupesanguin."'";



* remplace tous les champs

j'ai aussi enlevé les espaces au début et à la fin ??

Mais à part t'afficher la requette, as tu toujours une erreur: Erreur requete Erreur de syntaxe près de '''' AND groupe_sanguin = ''' à la ligne 1


Si tu n'as pas d'erreur c'est que la requette n'est pas bonne, en effet
Pourquoi chercher un patient par le nom ET le sexe ET le groupe sanguin.

Si tu met mr X avec pas le bon sexe et pas le bon GS tu n'en trouvera aucun

Si tu veux faire une recherche par nom Ou sexe OU groupe sanguin, il faut mettre OR à la place de AND

@lain
0
Déline Messages postés 27 Statut Membre
 
merci j'ai corrigé et ça marche!!!!!
merci bocou!!!!

mais si un medecin entre dans sa session et qu'il souhaite voir la liste de ses patients comment je vais m'y prendre dans la requete?

merci pour ton aide Alain42.
0