mysql_fetch_assoc

Petit nouveau ! | 2 Messages

19 févr. 2010, 22:35

Bonjour à tous,
J'essai de montré les images de mon database avec ce script :
<?php
$connect = mysql_connect('localhost', 'user', 'pass') or die ('Error connecting to mysql');
mysql_select_db(database);

$q1 = "SELECT image_path, duration, title, title_url FROM video ORDER BY rand()";
$r1 = mysql_query($q1) or die(mysql_error());

if(mysql_num_rows($r1) > '0')
{
while ($row = mysql_fetch_assoc($r1))
{
$row["image_path"] = str_replace("%s", "_120", $row["image_path"]);
echo '
<ut_response status="ok"><video_list><video>
<title>'.$row[title].'</title>
<run_time>'.$row[duration].'</run_time>
<url>vin/video/'.$row[title_url].'</url>
<thumbnail_url>file/pic/video/'.$row[image_path].'</thumbnail_url>
</video></video_list></ut_response>';
}
}

?>
Il y a aucun erreur. Mais le problème ce qu'il me montre le meme image (image_path) et pas des images differentes.

Pouvez vous m'aider svp?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 févr. 2010, 23:26

Bonsoir,

Tout d'abord, je vais commencer par un conseil d'ordre général : indente ton code
Très sincèrement, lorsque j'ai voulu vérifier si ton compte avait un soucis, je n'ai pas pu avant de le ré-indenter. Et, un jour, tu vas te mélanger les pinceaux dans tes accolades et tu ne pourras plus lire ton code

Voici ton code ré-indenté :
<?php
$connect = mysql_connect('localhost', 'user', 'pass') or die ('Error connecting to mysql');
mysql_select_db(database);

$q1 = "SELECT image_path, duration, title, title_url FROM video ORDER BY rand()";
$r1 = mysql_query($q1) or die(mysql_error());

if(mysql_num_rows($r1) > '0')
{
	while ($row = mysql_fetch_assoc($r1))
	{
		$row["image_path"] = str_replace("%s", "_120", $row["image_path"]);
		echo '
			<ut_response status="ok"><video_list><video>
			<title>'.$row[title].'</title>
			<run_time>'.$row[duration].'</run_time>
			<url>vin/video/'.$row[title_url].'</url>
			<thumbnail_url>file/pic/video/'.$row[image_path].'</thumbnail_url>
			</video></video_list></ut_response>';
	}
}
Ensuite, si tu veux tester si un nombre est supérieur à un autre, pourquoi le comparer à une chaine :
if(mysql_num_rows($r1) > 0) //Si tu mets '0', PHP va commencer par le transformer en 0, donc autant écrire directement 0
Sinon, en ce qui concerne la résolution de ton problème, si tu exécutes ta requête directement depuis PhpMyAdmin, est-ce qu'elle te retourne bien plusieurs résultat différent ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 2 Messages

20 févr. 2010, 15:46

Merci zeus,
J'aurais du faire ca avant. Mais est ce que tu vois l'erreur dans le code pk il afiches pas differentes images?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 févr. 2010, 19:19

Je t'ai donné une piste pour la résolution. ;)
Sinon, en ce qui concerne la résolution de ton problème, si tu exécutes ta requête directement depuis PhpMyAdmin, est-ce qu'elle te retourne bien plusieurs résultat différent ?
Bon, d'accord, elle était à la fin de mon message, mais elle était là :lol:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer