Requete sur requete ?

Mammouth du PHP | 543 Messages

18 juil. 2005, 15:51

erf oui, c'est pas un & mais un . qu'il faut mettre :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 juil. 2005, 15:52

Je le répete encore une fois, mais est-ce que tu as essayé le code de mere-teresa ?
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

Mammouth du PHP | 543 Messages

18 juil. 2005, 15:54

Voila la bonne version:
$req = mysql_query("select Num from table order by rand() limit 6");

$total = mysql_num_rows($req);
if ($total==0) {
  echo "pas de résultat";
} else {
  $liste = "";
  while ($res = mysql_fetch_array($req)) {
   $liste.="|".$res["Num"];
  }
  $liste = substr($liste,1);
  $req2 = mysql_query("select * from table where Num REGEXP '^(".$liste.")$' order by Num asc");
  
  /* Ici le traitement du resultat de la requete */

}

Le REGEXP c'est pour se servir des expressions regulieres comme un Like.
Dans ce cas, je construis mon motif au dessus ($liste) et je lui demande de rechercher les champs lui correspondant, donc les Num listés dans ce cas.

@++

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

18 juil. 2005, 16:00

Je le répete encore une fois, mais est-ce que tu as essayé le code de mere-teresa ?
Moi j'aiderai plus si on ne tient pas compte de mes interventions. Je passerai mon temps à modérer et censurer
[-(

Eléphanteau du PHP | 17 Messages

19 juil. 2005, 20:13

lol désolé mais j'ai du m'absenter quelques jours ce qui explique que je ne répondais plus...
Mere Teresa ne t'inquiète pas je ne t'ai pas oublié loin de là, j'ai essayé ton code mais je ne suis pas arrivé à le faire marcher mais je n'ai pas encore eu le temps de m'y pencher sérieusement... je ne voulais pas mettre le traditionnel "euh non ça marche pas ton truc c'est nul" avant d'avoir compris et tout essayé...
Je vous tiens au courant prochainement, et merci encore pour vos réponses rapides c'est vraiment très agréable.
Antony un ami qui vous veut du bien...

Eléphanteau du PHP | 17 Messages

20 juil. 2005, 15:15

Me revoilà !
Donc j'ai essayé la solution de Mère teresa... Mais j'ai quelques problèmes... Soit j'ai pas compris la fonction sort() soit... j'ai pas compris.
si je fais ça :
$Requete = mysql_query("SELECT Point FROM table ORDER BY RAND() LIMIT 0,6");
$rows = mysql_fetch_array($Requete);
foreach ($rows as $key => $val) {
echo "rows[".$key."] = ".$val."\n";
}
là il m'affiche que deux résultats... par contre si je met à ma requete select * là il m'affiche 6 résultats mais 6 résultats par pair. par exemple 2 fois la valeur de la colonne 1, deux fois la valeur de la colonne 2 etc...
Et pour ta solution Raptor j'ai mis un point mais j'ai toujours la meme erreur...
Antony un ami qui vous veut du bien...

Mammouth du PHP | 543 Messages

20 juil. 2005, 17:26

fait un copier coller du dernier code que j'ai posté, et dis moi l'erreur retournée, car je doute qu'il y est une erreur dans ce dernier code :)

Eléphanteau du PHP | 17 Messages

21 juil. 2005, 08:27

voilà ça donne sa :
$Requete = mysql_query("SELECT Num FROM table ORDER BY RAND() LIMIT 6");
echo "<body bgcolor='skyblue'><center>";

$liste = "";
  while ($Requete = mysql_fetch_array($Requete)) {
   $liste.="|".$res["Num"];
  }
  $liste = substr($liste,1);
  $req2 = mysql_query("select * from table where Num REGEXP '^(".$liste.")$' order by Num asc");


while ($rows = mysql_fetch_array($req2)){ 'l'erreur est ici
	$Image = $rows['Num'];
	echo $Image;
}
echo "</center>";
Modifié en dernier par Antony le 21 juil. 2005, 08:37, modifié 2 fois.
Antony un ami qui vous veut du bien...

Mammouth du PHP | 19672 Messages

21 juil. 2005, 08:28

Modération : Je fatigue à répéter ça tout le temps : Lisez les règlements. Antony, article 3 première ligne !
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 543 Messages

21 juil. 2005, 09:38

while ($res = mysql_fetch_array($Requete))

L'erreur est en rouge ;)

Eléphanteau du PHP | 17 Messages

21 juil. 2005, 13:07

Excuse j'avais mal recopié mon code, je n'ai pas fait une erreur aussi grossière je sais bien que je suis pas très bon mais quand même lol... c'est que avant de poster je modifie le nom de mes variables et de mes tables.
Donc voici le code sans aucune modification cette fois, ça évitera les erreurs :
$Requete = mysql_query("SELECT Num FROM cartes ORDER BY RAND() LIMIT 6");
echo "<body bgcolor='skyblue'><center>";

$liste = "";
  while ($res = mysql_fetch_array($Requete)) {
   $liste.="|".$res["Num"];
  }
  $liste = substr($liste,1);
  $req2 = mysql_query("select * from table where Num REGEXP '^(".$liste.")$' order by Num asc");


while ($rows = mysql_fetch_array($req2)){ \\l'erreur est ici
    $Image = $rows['Num'];
    echo $Image;
}

Je pense que l'erreur vient du fait que j'interroge peut etre mal la requete. peut etre faut il faire autre chose que mysql_fetch_array ?
Antony un ami qui vous veut du bien...

Mammouth du PHP | 543 Messages

21 juil. 2005, 13:56

j'ai testé de code sur une table perso, ca fonctionne parfaitement -_-

Dans ton cas tu as encore fait une faute.

Dans la deuxieme requete, ta table s'appele cartes, et non table...

Eléphanteau du PHP | 17 Messages

21 juil. 2005, 14:09

ah oui ça marche mieux là :lol: . Ce que je peux etre étourdie parfois :roll: . Merci pour tout en tout cas.
Antony un ami qui vous veut du bien...

Mammouth du PHP | 543 Messages

21 juil. 2005, 14:11

de rien ;)