Where

AP
Invité n'ayant pas de compte PHPfrance

22 janv. 2006, 20:03

Bonsoir

J'ai un problème de code sans doute dû à une nouvelle version de PHP (cela marchait sur une ancienne version et là ... non :( )

Si je fais ça, c'est bon :
$sql='SELECT * FROM fiches ORDER BY hit DESC limit '.$limite.','.$nombre;
$result=mysql_query($sql);
for ($compteur=0;$compteur<mysql_num_rows($result);$compteur++)
{
$affnom=mysql_result($result,$compteur,"nom_site");
$affhit=mysql_result($result,$compteur,"hit");
$afflangue=mysql_result($result,$compteur,"langue");
$affurl=mysql_result($result,$compteur,"url");
$affid=mysql_result($result,$compteur,"id");
echo ... ;
}
Là, ça ne marche plus !
$sql='SELECT * FROM fiches [b]WHERE categorie="bidule"[/b] ORDER BY hit DESC limit '.$limite.','.$nombre;
$result=mysql_query($sql);
for ($compteur=0;$compteur<mysql_num_rows($result);$compteur++)
{
$affnom=mysql_result($result,$compteur,"nom_site");
$affhit=mysql_result($result,$compteur,"hit");
$afflangue=mysql_result($result,$compteur,"langue");
$affurl=mysql_result($result,$compteur,"url");
$affid=mysql_result($result,$compteur,"id");
echo ... ;
}
Merci pour votre aide !
PS $limite et $nombre sont définies avant, pas de souci ;)

Mammouth du PHP | 19672 Messages

22 janv. 2006, 20:49

Tu pourrais simplifier :
<?php
$sql = "SELECT * FROM fiches WHERE categorie='bidule' ORDER BY hit DESC limit ". $limite .", ". $nombre;
$result = mysql_query($sql);
$nb = mysql_num_rows($result);
if($nb > 0)
{
    while($ligne = mysql_fetch_assoc($result))
    {
        $affnom    = $ligne['nom_site'];
        $affhit    = $ligne['hit'];
        $afflangue = $ligne['langue'];
        $affurl    = $ligne['url'];
        $affid     = $ligne['id'];
        echo "..." ;
    }
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

AP
Invité n'ayant pas de compte PHPfrance

22 janv. 2006, 20:51

Merci, je vais essayer ;)

AP
Invité n'ayant pas de compte PHPfrance

22 janv. 2006, 21:01

Hé bien, ça ne marche toujours pas :(
J'ai l'impression que c'est le where qui coince mais je ne vois pas pourquoi.
Dans mon premier code, il me liste bien tout le contenu de "fiches" ; dans le second, il n'écrit rien du tout !
Dans l'aide qui m'a été proposée, si je fais echo $nb; j'obtiens 0 !!!

Eléphant du PHP | 440 Messages

22 janv. 2006, 21:08

hello ,

t as essayé la requete dans phpmyadmin ?
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

AP
Invité n'ayant pas de compte PHPfrance

22 janv. 2006, 21:21

Merci, je n'y avais pas pensé :lol:
Je commence à trouver la solution ... enfin, un peu :(
Dans fiche, j'ai quatre catégories. Avec PHPAdmin, il ne m'envoie un résultat que pour la catégorie qui contient le plus d'enregistrements, pour les autres il ne donne rien ... même en enlevant "order by" ...
C'est déjà un début ...

AP
Invité n'ayant pas de compte PHPfrance

22 janv. 2006, 21:31

Merci à ceux qui ont proposé leur aide. Voilà, c'est résolu et ce n'était pas un problème de code.
Quel âne je suis !
Je me suis concentré sur le code alors que c'était un nom que je donnais dans un champ qui était incorrect.
Là où je cherchais categorie="trucs" il fallait chercher categorie="truc" !
Dans mes quatre catégories, les noms se terminaient pas un s dans mes requêtes alors qu'il n'y en avait pas dans la table !
Hé ben, quel dimanche à la noix ;)

Encore merci

Ap
PS Vous avez le droit de jeter vos tomates pourries (avec un s) :D