Problème avec mysql_fetch_row

Fermé
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013 - Modifié par emmanuelle_ le 4/06/2013 à 10:19
 Dounouw13 - 7 juin 2013 à 10:31
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

6 réponses

Utilisateur anonyme
4 juin 2013 à 10:51
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.
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
4 juin 2013 à 11:14
désolé juste j'ai copié quand j'etais en train d'essayer avec les autres options sinon mon problème est avec mysql_fetch_row et quand je fais u var_damp comme tu me l'as demandé il m'affiche ça: resource(173) of type (mysql result)
alors ça veut dire quoi: mon poblème est toujours dans mysql_fetch_row
0
Utilisateur anonyme
4 juin 2013 à 11:31
C'est bien une ressource, fais un
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.
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
Modifié par emmanuelle_ le 4/06/2013 à 12:31
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:(
0
Utilisateur anonyme
4 juin 2013 à 12:41
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 :
echo $row->id;

(dans ton code tu fais un select * donc je ne connais pas les noms de tes colonnes, à adapter)
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
4 juin 2013 à 13:08
quand je fais echo$ row->ID il m'affiche PHP Notice: Trying to get property of non-object in /home/mondev.php on line 13 (veut dire cette ligne) et quand je fais un var damp voisci le résultat :
bool(false)
:(
0
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]
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
4 juin 2013 à 13:39
non il n'ya rien qui s'affiche j'ai fait cette fois-ci var_dump($row[0]) et il m'a retourné NULL, je ne sais pas pourquoi il ne retourne pas le résultat avec mysql_fetch_array
0

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

Posez votre question
Utilisateur anonyme
4 juin 2013 à 14:09
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.
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
4 juin 2013 à 14:26
excuse moi c'est toujour mysql_fetch_row juste j'essaye avec des autrescomme _object ou_ array ou assoc pour savoirest ce que ça marche mais sans succès; sinon c'est toujours mysql_fetch_row et le code est toujours le meme
0
Utilisateur anonyme
4 juin 2013 à 14:55
As tu supprimé la parenthèse en trop dans la ligne de mysql_fetch_row?
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
4 juin 2013 à 15:08
oui
0
Utilisateur anonyme
4 juin 2013 à 15:39
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>";
	}
}

0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
4 juin 2013 à 15:59
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
0
Es tu sûr que ta base de données contient des entrées?
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
4 juin 2013 à 16:14
oui
0
Utilisateur anonyme
4 juin 2013 à 16:16
Tu veux pas copier coller la requête :
SELECT * FROM table1 WHERE titre = 'maison ' AND page_namespace =0
et la mettre directement dans phpmyadmin ou ce que tu utilises;, pour voire si elle retourne bien qqch.
0
emmanuelle_ Messages postés 46 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 10 juillet 2013
5 juin 2013 à 12:50
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
0