Pourquoi cette erreur avec ce code ? affichage img aléatoire [PHP&SQL] - PHP - Programmation
Marsh Posté le 13-11-2002 à 16:31:14
rainckill a écrit a écrit :
|
Cette erreur arrive quand ta requête ne ramène rien ou que ta variable n'est pas le résultat d'une requête.
Pourquoi ca ramène rien?
Surement que t'as loupé la conection à la base ou que ta table est vide.
Solution : tester le nombre de ligne retourné et vérifier que la requête c'est bien exécuté (pas d'erreur dans la requête)
Marsh Posté le 13-11-2002 à 16:35:36
non enfait elle apparait que une fois sur cent !
sur 100 refresh, elle va, approximativmeent, affiché 90 images aléatoires, et 10 avec cette erruer :-/ (chiffres au pif )
:|
Marsh Posté le 13-11-2002 à 16:49:55
Les appels mysql_result() ne devraient pas être mélangés avec d'autres fonctions qui travaillent aussi sur le résultat.
Alternatives à haut rendement, RECOMMANDEES : mysql_fetch_row(), mysql_fetch_array() et mysql_fetch_object().
Marsh Posté le 13-11-2002 à 16:53:45
Ben t'es sur que t'as une image d'id $num_photo ?
Si t'as un trous dans ta liste d'id, c'est normal que ca plante.
Au lieu d'un
Code :
|
essayes un
Code :
|
Ensuite, tu prends l'ID de la seconde requêtes si t'as besoin de t'en servir.
Autre truc, pour que cette modif marche bien, utilise un count(*) dans la première requête.
Marsh Posté le 13-11-2002 à 18:57:41
ah oui ! effectivement, il me manque les photo d'id 33, 53, 58 :-/
Ma technique ets aps très bien enfait !!
Et, ta nouvelle requette avec le ',1' en plus mènera à kelle différence ?
Marsh Posté le 13-11-2002 à 19:57:46
rainckill a écrit a écrit : ah oui ! effectivement, il me manque les photo d'id 33, 53, 58 :-/ Ma technique ets aps très bien enfait !! Et, ta nouvelle requette avec le ',1' en plus mènera à kelle différence ? |
Ben la nouvelle requête ta ramènera la niéme photo de ta base et rien que celle là (le 1 limite le retour à 1 seule occurence et l'autre donne a partir de quelle occurence de la requête on commence à ramener des données).
L'autre requête te donne le nombre d'occurence qui pourait être ramené par la seconde requête.
Normalement avec ça, tu devrais plus avoir de problème de "trou" dans les ID vu que c'est plus basé dessus.
Marsh Posté le 14-11-2002 à 19:57:12
je comprend aps pq l'ajout u ,1 résoudré mon probleme lol
désolé, mais tu pourré expliqué ?
Marsh Posté le 14-11-2002 à 21:11:55
rainckill a écrit a écrit : je comprend aps pq l'ajout u ,1 résoudré mon probleme lol désolé, mais tu pourré expliqué ? |
LIMIT délimite un intervale de ligne à retourner.
Pour savoir quel intervale, on lui donne deux nombre, le début de l'intervale et la taille de l'intervale.
Marsh Posté le 14-11-2002 à 22:12:35
omega2 a écrit a écrit : LIMIT délimite un intervale de ligne à retourner. Pour savoir quel intervale, on lui donne deux nombre, le début de l'intervale et la taille de l'intervale. |
oui, mais si on lui retourne un début d'intervalle au numero 53 (dont lid de lmg existe pas), il y aura la meême erruer... Vu que l'intervalle commenceant à 53, de taille 1, c'ets le nombre 53 lui même, non ?
D'ou la même erruer rencontré ?
Marsh Posté le 15-11-2002 à 11:28:04
rainckill a écrit a écrit : oui, mais si on lui retourne un début d'intervalle au numero 53 (dont lid de lmg existe pas), il y aura la meême erruer... Vu que l'intervalle commenceant à 53, de taille 1, c'ets le nombre 53 lui même, non ? D'ou la même erruer rencontré ? |
Non, il se base pas sur les ID mais sur la position des lignes parmis l'ensemble de ligne retourné par la requête s'il n'y a pas de LIMIT.
Que la 53 éme ligne ai comme ID "0" "200" ou "53", lui il s'en fout.
Il se dit juste :
voilà tout ce qui correspond à ce qu'on me demande. Alors voyont voir, je doit commencé à retourner des valeurs qu'à partir de la 53 éme, donc j'en saute 52 et ensuite j'en envoit 1 (c'est un exemple) . Une fois que j'en ai envoyé 1, je laisses tombé le reste.
Marsh Posté le 25-12-2002 à 20:44:02
Alors la je comprend pas !!!
Voila, j'ai une table avec 78 enregistrement. Tous contiennent des infos pour des images (affiché ici : http://www.hellfire.firstream.net/ [...] allpapers) et j'utilise ce script pour la prise aléattoire dans cette table :
Code :
|
Mais c'est toujours ma meme image qui s'affiche !!!!! Vraiment je comprend pas !
Merci pour votre aide !
Marsh Posté le 27-12-2002 à 03:31:28
fais un select ... order by rand() limit 1 sur ta table et tu recuperera une ligne de ta table aleatoirement.
quand a ton probleme d'aleatoire en php, aucune idée
Marsh Posté le 29-12-2002 à 12:39:52
tu veux dire qu'un
"SELECT * FROM sys_images order by rand() limit 1";
prendra une ligne o hazar sur la table, et donc, pas besoin du reste du code pouir générer un chiffre aléatoire ?
Marsh Posté le 30-12-2002 à 11:44:38
Oki, c'est excelent alors !
J'la connaissais pas ^^
Merci a toi
Marsh Posté le 13-11-2002 à 16:16:21
Warning: Unable to jump to row 0 on MySQL result index 16 in /home/_he/hellfire/pub/www/screentest.php on line 32
Warning: Unable to jump to row 0 on MySQL result index 16 in /home/_he/hellfire/pub/www/screentest.php on line 33
Pourquoi je rencontre ces erreurs ?
avec ce code :