Problème php $_GET

Résolu/Fermé
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 - 20 mai 2008 à 09:22
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 - 21 mai 2008 à 10:43
Bonjour,

Je suis en stage depuis hier, où je dois réaliser un site intranet pour une mairie, regroupant les différents services de la mairie.
J'ai, dans un premier temps, créé et rempli une base de données avec une table SERVICE et une autre table EMPLOYE.
Puis, j'affiche sur une page de mon site tous les services avec la possibilité de cliquer dessus afin d'afficher la liste des employés de chaque service.

Mais une erreur s'affiche : "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\stage 2008\detail.php on line 13"

Voici mon code, de la ligne 10 à la ligne 13 :
10 $NomServ = $_GET['NomServ'];
11 $requete = "SELECT * FROM Service,Employe WHERE SERVICE.NumServ = EMPLOYE.NumServ AND NomServ = $NomServ";
12 $resultat = mysql_query($requete);
$ligne = mysql_fetch_array("$resultat");

Je ne sais pas où se trouve l'erreur...
Ai-je été assez clair ou avez-vous besoin de plus amples informations ?
Merci d'avance.
A voir également:

7 réponses

MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
20 mai 2008 à 09:38
0
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 16
20 mai 2008 à 13:46
Merci pour votre réponse.
Je viens de regarder ça, mais je suis vraiment perdu, je suis débutant...
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
20 mai 2008 à 13:51
Essaye de mettre $ligne = mysql_fetch_array($result, MYSQL_BOTH) au lieu de $ligne =mysql_fetch_array($result)
0
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 16
20 mai 2008 à 13:54
Il me donne la même erreur...
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
20 mai 2008 à 17:29
Bsr

Ca vient peut être des lignes 1 à 10 ... mais on les voit pas

Sinon juste après
$resultat = mysql_query($requete); 


insère
if (!$resultat)
{
	echo "requete = ".$requete."\n";
	echo "mysql_errno = ".mysql_errno()."\n";
	echo "mysql_error = ".mysql_error()."\n";	
	exit;
}

Ca devrait t'afficher l'erreur MySQL
0

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

Posez votre question
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 16
21 mai 2008 à 09:22
Merci PhP, ça m'avance un peu car en effet, je vois l'erreur Sql :
requete = SELECT * FROM Employe,Service WHERE SERVICE.NumServ = EMPLOYE.NumServ AND NomServ = ACMO mysql_errno = 1054 mysql_error = Champ 'ACMO' inconnu dans where clause
==> ACMO étant un service (NomServ dans la table SERVICE)

Je vous explique, j'ai une page gerer.php qui m'affiche tous les services de la table SERVICE :

<?
include ("connex.php");

$requete = "SELECT NomServ FROM SERVICE ORDER BY 'NomServ'";
$resultat = mysql_query("$requete");
echo "<center>";
echo "<table border=5 bordercolor=yellow bgcolor=#FFFF99>";
echo "<tr align=center><td><b>Nom du service</b></td><td><b>Liste des salariés</b></td></tr>";
while ($ligne = mysql_fetch_array($resultat))
{
$NomServ=$ligne['NomServ'];

echo "
<tr>
<td>$NomServ</td>
<td align=center><a href=detail.php?NomServ=$NomServ>
<img src=images/fleche.gif width=40 height=30 border=0></a>
</tr>";
}

echo "</table>";
echo "</center>";
mysql_close();
?>

Puis lorsque je clique sur un service, je souhaites que ça m'affiche tous les salariés de ce service (table SALARIE). Voici donc ma page detail.php :

<?
include ("connex.php");

$NomServ = $_GET['NomServ'];
$requete = "SELECT * FROM Employe,Service WHERE SERVICE.NumServ = EMPLOYE.NumServ AND NumServ = $NomServ";
$resultat = mysql_query($requete);

if (!$resultat)
{
echo "requete = ".$requete."\n";
echo "mysql_errno = ".mysql_errno()."\n";
echo "mysql_error = ".mysql_error()."\n";
exit;
}
mysql_close();

?>
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
21 mai 2008 à 10:16
Bjr

ben oui si ton champ Numserv est un champ texte alors il faut mettre des quotes autour de la valeur que tu lui affectes autrement MySQL l'interprète comme un nom de champ !


Donc teste comme ceci:

$requete = "SELECT * FROM Employe,Service WHERE SERVICE.NumServ = EMPLOYE.NumServ AND NumServ = '".$NomServ."'"; 
--

PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
0
bobenausaure Messages postés 228 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 27 janvier 2013 16
21 mai 2008 à 10:43
Merci beaucoup, ça marche super !!
Au final, je ne me suis pas servi du NomServ, mais du NumServ.

Encore merci.
0