Problème avec mysql_fetch_row
emmanuelle_
Messages postés
48
Statut
Membre
-
Dounouw13 -
Dounouw13 -
Bonjour,
j'ai un problème avec mysql_fetch_row qui ne veut pas me reourner le résultat j'ai fait comme ça pour tester ma requete:
$result = mysql_query($query, $link) or die ('Erreur de requête');
$row = mysql_fetch_object($result) or die ('ça marche pas');
et il m'affiche "ça marche pas"
d'après vous qu'est ce que ça doit etre le problème
merci d'avance pour votre aide
j'ai un problème avec mysql_fetch_row qui ne veut pas me reourner le résultat j'ai fait comme ça pour tester ma requete:
$result = mysql_query($query, $link) or die ('Erreur de requête');
$row = mysql_fetch_object($result) or die ('ça marche pas');
et il m'affiche "ça marche pas"
d'après vous qu'est ce que ça doit etre le problème
merci d'avance pour votre aide
6 réponses
Salut salut,
C'est plutôt avec mysql_fetch_object que tu as des soucis?
J'ai l'impression que tes deux lignes sont correctes. fait un var_dump($result); après ta lgine : $result = mysql_query($query, $link) or die ('Erreur de requête');
Vérifie que la variable est bien une ressource, sinon c'est un peu plus haut qu'il y a des problèmes.
C'est plutôt avec mysql_fetch_object que tu as des soucis?
J'ai l'impression que tes deux lignes sont correctes. fait un var_dump($result); après ta lgine : $result = mysql_query($query, $link) or die ('Erreur de requête');
Vérifie que la variable est bien une ressource, sinon c'est un peu plus haut qu'il y a des problèmes.
C'est bien une ressource, fais un
Sinon poste un peu plus de code.
echo $query;pour voir la tête de la requête, et essaie de la taper directement dans mysql.
Sinon poste un peu plus de code.
dans mes donnée j'ai un tableau qui contient des mots je voudrais récupérer dans ma base de données tout les champs quand le titre est chacun de ces mots alors mon code est comme suit:
$link = mysql_connect('localhost','root','mdp') or die('unable to connect mysql');
mysql_select_db('bdd',$link) or die('unable to connect database');
for ($i=0;$i<$nb;$i++){
foreach($tab[0] as $key=>$value){
$query = 'SELECT * FROM table1 WHERE titre = \''.mysql_real_escape_string($value).'\'AND page_namespace =0';
$result = mysql_query($query, $link) or die ('Erreur de requête');
$row = mysql_fetch_row($result));
echo $row;
}}
je ne sais pas qu'est ce ça doit etre l'erreur que j'ai faite:(
$link = mysql_connect('localhost','root','mdp') or die('unable to connect mysql');
mysql_select_db('bdd',$link) or die('unable to connect database');
for ($i=0;$i<$nb;$i++){
foreach($tab[0] as $key=>$value){
$query = 'SELECT * FROM table1 WHERE titre = \''.mysql_real_escape_string($value).'\'AND page_namespace =0';
$result = mysql_query($query, $link) or die ('Erreur de requête');
$row = mysql_fetch_row($result));
echo $row;
}}
je ne sais pas qu'est ce ça doit etre l'erreur que j'ai faite:(
Ca m'étonne pas vraiment que ca ne t'affiche rien.
A la place du echo $rows; fais un var_dump($row) tu verras le détail de cette variable.
Quand tu fais myslq_fetch_object tu récupères les champs sur forme d'objet, par exemple si une de tes colonnes de la table table1 s'appelle id tu peux l'afficher en faisant :
(dans ton code tu fais un select * donc je ne connais pas les noms de tes colonnes, à adapter)
A la place du echo $rows; fais un var_dump($row) tu verras le détail de cette variable.
Quand tu fais myslq_fetch_object tu récupères les champs sur forme d'objet, par exemple si une de tes colonnes de la table table1 s'appelle id tu peux l'afficher en faisant :
echo $row->id;
(dans ton code tu fais un select * donc je ne connais pas les noms de tes colonnes, à adapter)
Ahh je m'embrouille maintenant.
Si tu veux utiliser mysql_fetch_row il faut que tu écrives echo $row[0] pour le premier élément, il ne faut pas utiliser $row->ID (c'est pour mysql_fetch_object).
pour mysql_fetch_row ça te renvoit un tableau indéxé numériquement. >Tu récupèrera avec $row[0], $row[1]...
Par contre le retour ne doit pas être false :
Il y a une double parenthèse à ta ligne :
$row = mysql_fetch_row($result));
enlève et regarde le retour
Résolu? ===> [RESOLU]
Si tu veux utiliser mysql_fetch_row il faut que tu écrives echo $row[0] pour le premier élément, il ne faut pas utiliser $row->ID (c'est pour mysql_fetch_object).
pour mysql_fetch_row ça te renvoit un tableau indéxé numériquement. >Tu récupèrera avec $row[0], $row[1]...
Par contre le retour ne doit pas être false :
Il y a une double parenthèse à ta ligne :
$row = mysql_fetch_row($result));
enlève et regarde le retour
Résolu? ===> [RESOLU]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mysql_fetch_array??
Ca me perd un peu tout ça, lequel tu souhaites utiliser?
On va repartir du début, quel est ton code à l'heure actuelle? Reposte le une fois.
Ca me perd un peu tout ça, lequel tu souhaites utiliser?
On va repartir du début, quel est ton code à l'heure actuelle? Reposte le une fois.
Peux tu tester ça et me donner le retour (j'ai juste fais des echo pour comprendre ce qu'il se passe) :
$link = mysql_connect('localhost','root','mdp') or die('unable to connect mysql');
mysql_select_db('bdd',$link) or die('unable to connect database');
for ($i=0;$i<$nb;$i++){
foreach($tab[0] as $key=>$value){
$query = 'SELECT * FROM table1 WHERE titre = \''.mysql_real_escape_string($value).'\'AND page_namespace =0';
echo "Requete : ".$query."<br>";
$result = mysql_query($query, $link) or die ('Erreur de requête');
echo "Ressource : ".$result."<br>";
$row = mysql_fetch_row($result);
echo "Rslt<pre>";
var_dump($row);
echo "</pre>";
}
}
il affiche ça
Requete : SELECT * FROM table1 WHERE titre = 'maison 'AND page_namespace =0<br>Ressource : Resource id #173<br>Rslt<pre>bool(false)
</pre>Requete : SELECT * FROM table1 WHERE titre = 'pays'AND page_namespace =0<br>Ressource : Resource id #174<br>Rslt<pre>bool(false)
</pre>Requete : SELECT * FROM table1 WHERE titre = 'mot 'AND page_namespace =0<br>Ressource : Resource id #175<br>Rslt<pre>bool(false)
il affiche ça en $nb de fois
Requete : SELECT * FROM table1 WHERE titre = 'maison 'AND page_namespace =0<br>Ressource : Resource id #173<br>Rslt<pre>bool(false)
</pre>Requete : SELECT * FROM table1 WHERE titre = 'pays'AND page_namespace =0<br>Ressource : Resource id #174<br>Rslt<pre>bool(false)
</pre>Requete : SELECT * FROM table1 WHERE titre = 'mot 'AND page_namespace =0<br>Ressource : Resource id #175<br>Rslt<pre>bool(false)
il affiche ça en $nb de fois
Bonjour;
finalment , c"etait autre chose car mon tableau contient des mots composés comme "maison de jean mich" et comme mon tableau commence avec ce type de données il n'affiche rien du cout je ne sais pas est ce que je peux par exemple rajouter queleque chose pour qu'il prenne en considération les mots composés dans ma requête
finalment , c"etait autre chose car mon tableau contient des mots composés comme "maison de jean mich" et comme mon tableau commence avec ce type de données il n'affiche rien du cout je ne sais pas est ce que je peux par exemple rajouter queleque chose pour qu'il prenne en considération les mots composés dans ma requête
alors ça veut dire quoi: mon poblème est toujours dans mysql_fetch_row