Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2010, 08h53   #1
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
Par défaut Erreur avec "mysql_fetch_row()"

Bonjour,

j'ai un problème avec mon code PHP.
Quand je vais sur la page voir si mon code fonctionne bien cette erreur s'affiche sur ma page :
Citation:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Nouvelle version 20101\php\essai.php on line 49
voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
	include "connexion.php";
//Création et envoi de la requête
$query="SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie Ca, Client Cl WHERE Ca.IdCategorie=Cl.IdCategorie ORDER BY LibelléCategorie";
$result=mysql_query($query);
//Récupération des résultats
while ($row=mysql_fetch_row($result))
{
$NomEntreprise=$row[0];
$TexteClient=$row[1];
echo "<tr>\n
	<td>$LibelleCategorie</td>\n
	<td>$NomEntreprise</td>
	<td>$TexteClient</td>\n";
}
// on ferme la connexion à mysql
mysql_close(); 
?>
IdCatégorie est la clé étrangère de la table client, je souhaite enfait affiché le libellé des catégorie pour les différentes entreprises.
L'erreur qui s'affiche uniquement quand j'ai la la table catégorie dans mon code, quand je retire tout ce qui fait référence à cette table le code s'exécute bien et j'ai le nom des entreprise et le texte.

Comment puis je faire pour résoudre ce problème ?

par ailleurs est il possible en php de faire des tableaux ?
ce que je souhaite faire c'est un tableau avec le libellé des catégories au dessus de chaque entreprise de la catégorie, puis dans la partie gauche du tableau le nom des entreprise et dans la partie de droite le texte.
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 09h21   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 127
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 127
Points : 7 271
Points : 7 271
Bonjour,

Citation:
$query="SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie Ca, Client Cl WHERE Ca.IdCategorie=Cl.IdCategorie ORDER BY LibelléCategorie";
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 08h29   #3
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
ca ne change rien, j'ai retiré l'accent mais cela ne change rien il me met toujours la même erreur =/

je remet mon code, j'ai vu que j'ai oublié une ligne dans l'autre code que j'ai mis.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
	include "connexion.php";
//Création et envoi de la requête
$query="SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie Ca, Client Cl WHERE Ca.IdCategorie=Cl.IdCategorie ORDER BY LibelleCategorie";
$result=mysql_query($query);
//Récupération des résultats
while ($row=mysql_fetch_row($result))
{
$LibelleCategorie=$row[0];
$NomEntreprise=$row[1];
$TexteClient=$row[2];
echo "<tr>\n
	<td>$LibelleCategorie</td>\n
	<td>$NomEntreprise</td>
	<td>$TexteClient</td>\n";
}
// on ferme la connexion à mysql
mysql_close(); 
?>
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 08h42   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
De la lecture
http://php.developpez.com/faq/?page=...ysql_ressource
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 12h56   #5
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Essaye comme ça pour ta requête:

Code :
1
2
3
$query = "SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie
INNER JOIN Client on Categorie.IdCategorie = Client.IdCategorie 
ORDER BY LibelleCategorie";
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 14h30   #6
Membre éclairé
 
Inscription : octobre 2004
Messages : 235
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 235
Points : 360
Points : 360
Déjà le minimum c'est de wrapper tes appels à mysql_query pour vérifier systématiquement les erreurs :

Code :
1
2
3
4
5
 
function query($query) {
  $res = mysql_query($query) or die('Query failed : "'.$query.'" error : "'.mysql_error().'"';
  return $res;
}
Exécute tes requêtes via des appels à query(), tu auras le détail de l'erreur si il y a un problème.
Joker-eph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 10h11   #7
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
j'ai fais ce que Joker-eph m'a dit de faire donc le code donne ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
	include "connexion.php";
//Création et envoi de la requête
function query($query) {
  $result = mysql_query($query) or die('Query failed : "'.$query.'" error : "'.mysql_error().'"';
  return $result;
}
$query = "SELECT LibelleCategorie, NomEntreprise, TexteClient FROM client, categorie WHERE categorie.IdCategorie = client.IdCategorie";
$result=mysql_query($query);
 
//Récupération des résultats
while ($row=mysql_fetch_row($result))
{
$LibelleCategorie=$row[0];
$NomEntreprise=$row[1];
$TexteClient=$row[2];
echo "<tr>\n
	<td>$LibelleCategorie</td>\n
	<td>$NomEntreprise</td>
	<td>$TexteClient</td>\n";
}
// on ferme la connexion à mysql
mysql_close(); 
?>
et l'erreur trouvé est
Citation:
Parse error: parse error in C:\wamp\www\Nouvelle version 20101\php\essai.php on line 47
la ligne 47 correspond à la ligne :
Citation:
$result = mysql_query($query) or die('Query failed : "'.$query.'" error : "'.mysql_error().'"';
sinon j'ai testé ma requête dans mysql est elle fonctionne correctement.
donc qu'elle est mon erreur ici ? j'ai bien mis normalement tout les ";" et je ne vois pas de simple quote qui se balade.

merci de votre aide
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 10h21   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 099
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 099
Points : 8 461
Points : 8 461
tu vois pas qu'il manque une parenthèse ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 10h30   #9
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 127
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 127
Points : 7 271
Points : 7 271
Bonjour,

+1 stealth35
C'est dans la fonction que tu n'appelles pas que tu as mis le mysql_error().

$result=mysql_query($query);
Code :
1
2
$query = "SELECT LibelleCategorie, NomEntreprise, TexteClient FROM client, categorie WHERE categorie.IdCategorie = client.IdCategorie";
$result=query($query);
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 10h55   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 099
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 099
Points : 8 461
Points : 8 461
si tu veux débugger ton mysql utilise mysql.trace_mode
Code :
ini_set('mysql.trace_mode', true);
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 15h07   #11
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
merci =)

enfait j'ai l'ai vu après que j'ai posté et j'ai oublié de dire que j'avais trouvé mon erreur !!

merci de votre aide en tout cas =)
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h37.


 
 
 
 
Partenaires

Hébergement Web