Problème php $_GET [Résolu/Fermé]

Signaler
Messages postés
226
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
-
Messages postés
226
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
-
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.

7 réponses

Messages postés
2583
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
26 août 2011
137
Messages postés
226
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
Merci pour votre réponse.
Je viens de regarder ça, mais je suis vraiment perdu, je suis débutant...
Messages postés
2583
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
26 août 2011
137
Essaye de mettre $ligne = mysql_fetch_array($result, MYSQL_BOTH) au lieu de $ligne =mysql_fetch_array($result)
Messages postés
226
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
Il me donne la même erreur...
Messages postés
1771
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
600
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
Messages postés
226
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
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();

?>
Messages postés
1771
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
600
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 ...
Messages postés
226
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
27 janvier 2013
16
Merci beaucoup, ça marche super !!
Au final, je ne me suis pas servi du NomServ, mais du NumServ.

Encore merci.