Un problème simple[résolu]

Un problème simple[résolu] - PHP - Programmation

Marsh Posté le 12-10-2006 à 08:09:38    

Bonjour,
 
Je cherche à faire afficher une selection aléatoire dans une liste d'id, le problème c'est que dans ma liste d'id qui va de 1 à 55 (aujourd'hui, mais augmente régulèrement) j'ai des trous càd que, j'ai par exemple 1 3 4 5 6 9 10 13 .... mon problème dans mon code est que il ne m'affiche rien quand je tombe sur une id qui n'existe pas.
 
je cherche un moyen pour dire de refaire un rand si je tombe sur une id qui n'exite pas.
 
voilà le code que j'ai fait (soyez indulgent je suis un noob)
 

Code :
  1. mysql_connect($db_host, $db_user, $db_pass)
  2.    or die ("Unable to connect to database." );
  3.   mysql_select_db($db_database)
  4.    or die ("Unable to select database." );
  5. $req = mysql_query("SELECT MAX(id) FROM files" );
  6.      $id_max = mysql_result($req,0);
  7.     
  8.   $id=rand(1,$id_max);
  9.   $sql = "SELECT * FROM files WHERE id = $id";
  10.   $result = mysql_query($sql);
  11.   if ($row = mysql_fetch_array($result))
  12.   {
  13.   ?>
  14.    <center><BR><BR><BR>
  15.    <a href="../gestion_videos.php?func=fileinfo&id=<?php echo $row[id];?>">
  16.    <?php echo $row["filename"]; ?><BR><BR>
  17.    <BR><?php echo $row["image"]; ?><BR></a><BR>
  18.    </center>
  19.   <?
  20.   } else {
  21.   echo "   ";
  22.     }
  23.   return;


Message édité par top_rem le 12-10-2006 à 13:14:19
Reply

Marsh Posté le 12-10-2006 à 08:09:38   

Reply

Marsh Posté le 12-10-2006 à 10:19:22    

Code :
  1. SELECT * FROM tbl_name ORDER BY RAND() LIMIT 10


Et si tu en veux plus de 10, bin tu changes le limit 10 ;)

Reply

Marsh Posté le 12-10-2006 à 11:32:00    

je veux une id parmis celle qui sont dispo , je fixe la limite en cherchant la plus grande id et après je fait un rand en limitant avec mon maxi, mais parfois l'id est pas valide suis à des effacement de ligne dans ma base. Donc je cherche à refaire la boulce si l'id est pas bonne (en gros).
 
Merci de votre aide :jap:


Message édité par top_rem le 12-10-2006 à 11:32:28
Reply

Marsh Posté le 12-10-2006 à 11:34:25    

oui bin c'est stupide hein :o
lis le paragraphe sur "order by rand" là: http://dev.mysql.com/doc/refman/5. [...] tions.html
 
Mysql fait ça tout seul et tu n'as pas besoin de t'amuser à calculer le nombre au hasard et vérifier que celui-ci existe bel et bien dans ta table!
edit: Et si tu veux "un" seul enregistrement, tu fais un limit 1


Message édité par anapajari le 12-10-2006 à 11:35:03
Reply

Marsh Posté le 12-10-2006 à 13:14:01    

ok Merci de ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed