Problème de selection aléatoire d'une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de selection aléatoire d'une table

par neo765 » 22 sept. 2006, 15:36

essaye sans le
ORDER BY RAND() LIMIT $nbcadeaux2
sans le 'ORDER BY RAND() LIMIT $nbcadeaux2' il affiche :
ID gagnant(s) : - 3 -ID gagnant(s) : - 1 -ID gagnant(s) : - 2 -ID gagnant(s) : - 4 -Aucune ligne trouv�e, rien � afficher.10
et si tu affichais $sql pour voir combien de fois il l'exécute et avec quelles valeurs ?
Le echo $sql affiche :
SELECT idmembre2 FROM liste_attente WHERE nomcadeaux=1 ORDER BY RAND() LIMIT 2
SELECT idmembre2 FROM liste_attente WHERE nomcadeaux=1 ORDER BY RAND() LIMIT 2
Aucune ligne trouv�e, rien � afficher.10
Merci

par Ryle » 22 sept. 2006, 15:31

et si tu affichais $sql pour voir combien de fois il l'exécute et avec quelles valeurs ?

par Maitrepylos » 22 sept. 2006, 15:30

essaye sans le
ORDER BY RAND() LIMIT $nbcadeaux2

par neo765 » 22 sept. 2006, 15:23

Voilà ma table cadeau :

id prix nombre
1 13.0 2
2 10.0 1

par Maitrepylos » 22 sept. 2006, 13:32

Bonjour,

Très certainement parce que tu as, un id et un nombre dans la table cadeau, et qui n'a pas de relation dans la table liste_attente.


Vérifie que tu n'a que 2 id et nombre dans la table cadeau.


MaitrePylos

Problème de selection aléatoire d'une table

par neo765 » 22 sept. 2006, 12:58

Salut,

J'ai voulu faire un script pour extraire un nombre aléatoire de selection d'une table, il m'extrait bien les données demandée mais il m'affiche en même temps l'erreur disant qu'il n'a rien trouvé, pourquoi ?

Mon script :
<?php
$conn = mysql_connect("localhost", "root", "");

if (!$conn) {
echo "Impossible de se connecter à la base de données : " . mysql_error();
   exit;
}

if (!mysql_select_db("betgames")) {
   echo "Impossible de sélectionner la base betgames : " . mysql_error();
   exit;
}
//--
$nom_cadeaux1 = "SELECT id, nombre FROM cadeaux";

$nom_cadeaux2 = mysql_query($nom_cadeaux1);

if (!$nom_cadeaux2) {
   echo "Impossible d'exécuter la requête ($nom_cadeaux1) dans la base : " . mysql_error();
   exit;
}

if (mysql_num_rows($nom_cadeaux2) == 0) {
   echo "Aucune ligne trouvée, rien à afficher.15";
   exit;
}

while ($row = mysql_fetch_assoc($nom_cadeaux2)) {
$nom_cadeaux=$row["id"];
$nbcadeaux2 = $row["nombre"];

$sql = "SELECT idmembre2 FROM liste_attente WHERE nomcadeaux=$nom_cadeaux ORDER BY RAND() LIMIT $nbcadeaux2";
$result = mysql_query($sql);
if (!$result) {
   echo "Impossible d'exécuter la requête ($sql) dans la base : " . mysql_error();
   exit;
}
if (mysql_num_rows($result) == 0) {
   echo "Aucune ligne trouvée, rien à afficher.10";
   exit;
}
while ($row = mysql_fetch_assoc($result)) {
$idgagnant=$row["idmembre2"];
echo "ID gagnant(s) : - $idgagnant -";
}
mysql_free_result($result);
}
mysql_free_result($nom_cadeaux2);
?>
Quand je lance la page, il m'affiche :
ID gagnant(s) : - 1 -ID gagnant(s) : - 4 -Aucune ligne trouvée, rien à afficher.10
Merci