problème sur 2 requetes - recup info de la 1ere ??

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 sur 2 requetes - recup info de la 1ere ??

Re: problème sur 2 requetes - recup info de la 1ere ??

par arme » 13 avr. 2010, 13:04

c'est bon j'ai trouvé

je fais une première requete en cherchant un circuit au hazard
je re-injecte le circuit dans ma deuxième requete pour avoir le meilleur resultat:
where `circuit`='$circuitchoisi' ORDER BY `resultat` ASC  LIMIT 1
merci a+ :D

Re: problème sur 2 requetes - recup info de la 1ere ??

par arme » 13 avr. 2010, 12:48

ca ne marche pas désolé

je souhaite, faire une seule requete avec RANDOM sur circuit et ORDER sur resultat ASC avec 1 seule resultat

en fait dans ma base j'ai des centaines de chronos sur plusieurs circuits avec des resultats parfois sur les memes circuits

je voudrai que au hazard un circuit sorte, avec le meilleur resultat soit :
...

mysql_select_db ( 'contrelamontre' , $db ) or die( 'Erreur de selection ' . mysql_error ()); 
$sql = 'SELECT id, epreuve, circuit, mail, idonline,resultat,mode,voiture,date,replay,certification,reel  FROM `contrelamontre` where `circuit`="""" RANDOM circuit je ne sais pas comment l'ecrire""""  ORDER BY `resultat` ASC  LIMIT 1 '; 
$SqlStr = mysql_query($sql);
while ($rang=mysql_fetch_array($SqlStr))
{
$idonline = $rang['idonline'];
$circuit = $rang['circuit'];
$voiture = $rang['voiture'];
....
merci pour l'aide :D

Re: problème sur 2 requetes - recup info de la 1ere ??

par Aureusms » 13 avr. 2010, 12:15

Il y est avec

$id_au_hazard = rand (0,$nombre_de_circuit);

Re: problème sur 2 requetes - recup info de la 1ere ??

par arme » 13 avr. 2010, 11:43

si je veux que circuit soit en RANDOM, peux tu m'indiquer la requete a effectuer ?

merci par avance Aureusms :D

Re: problème sur 2 requetes - recup info de la 1ere ??

par Aureusms » 13 avr. 2010, 11:21

Note : pour les 2 ORDER cela marche sous l'écriture (exemple) "ORDER CIRCUIT ASC, resultat DESC"

Re: problème sur 2 requetes - recup info de la 1ere ??

par Aureusms » 13 avr. 2010, 11:20

Peut être un truc plus simple : récupères d'abord le nombre de circuit ensuite cré un nombre aléatoire avec PHP et injecte le dans ta requete
<?php
//soit count () dans la requete soit mysql_num_rows
$requete = "SELECT circuit FROM contrelamontre where reel=0";
$resultat_sql = mysql_query($requete);
$nombre_de_circuit = mysql_num_rows($resultat_sql);

$id_au_hazard = rand (0,$nombre_de_circuit);

$sql = 'SELECT id, epreuve, circuit, mail, idonline,resultat,mode,voiture,date,replay,certification,reel  FROM `contrelamontre`  where circuit='.$id_au_hazard .' ORDER BY resultat ASC  LIMIT 1 ';
$SqlStr = mysql_query($sql);
while ($rang=mysql_fetch_assoc($SqlStr))
{
$idonline = $rang['idonline'];
$circuit = $rang['circuit'];
$voiture = $rang['voiture'];
$resultat = $rang['resultat'];
}
?>

problème sur 2 requetes - recup info de la 1ere ??

par arme » 13 avr. 2010, 10:54

bonjour,

dans le but de faire un petit logiciel sur des chronos de circuits,
j'ai trouvé cette solution, mais elle ne marche pas, probleme de requete

je souhaite en premier faire une requete pour trouver un circuit au hazard :
....
$sql = 'SELECT circuit  FROM `contrelamontre` where `reel`="0" ORDER BY RAND( ) LIMIT 1'; 
$SqlStr = mysql_query($sql);
while ($rang=mysql_fetch_array($SqlStr))
{
$circuitchoisi = $rang['circuit'];
echo    $circuitchoisi;
}
ensuite je veux récupérer $circuitchoisi pour afficher mon chrono au hazard, mais ca ne marche pas :
...
$sql = 'SELECT id, epreuve, circuit, mail, idonline,resultat,mode,voiture,date,replay,certification,reel  FROM `contrelamontre`  where circuit=$circuitchoisi ORDER BY `resultat` ASC  LIMIT 1 '; 
$SqlStr = mysql_query($sql);
while ($rang=mysql_fetch_array($SqlStr))
{
$idonline = $rang['idonline'];
$circuit = $rang['circuit'];
$voiture = $rang['voiture'];
$resultat = $rang['resultat'];
....
en fait, il faudrait que WHERE circuit = $circuitchoisi de la requete précédente, car je souhaite afficher 1 circuit au hazard mais avec un ORDER aussi sur resultat pour prendre le meilleur.

Comme un requete avec 2 ORDER ne marche pas, j'ai pensé à ca, mais le resultat de la première requete je n'arrive pas à le mettre dans la seconde

merci pour votre aide par avance !! :D