Problème de lecture de requête

Eléphant du PHP | 130 Messages

06 mai 2008, 09:49

Bonjour à tous,

voici mon problème
J'ai une requête qui classe par ordre décroissant les id_sous_rub.
Le truc c'est que l'ordre décroissant n'est pas conserver quand je cherche a l'afficher.
A quoi est-ce dû? Y a t'il une erreur dans mon code? Comment corriger cela?

D'avance merci

$sql = "SELECT id_sous_rub,nom_sous_rub,commentaire,id_rub,id_sec,date FROM sous_rubrique WHERE id_rub = '".$rubrique."' and id_sec <='".$_SESSION['admin']." ORDER BY date DESC'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

$num=mysql_num_rows($req);

echo'<br>';

while($row=mysql_fetch_object($req)){
  echo'<div id="tableau">
      <table width="536px" align="center"  bgcolor="#edebeb" >
    <tr>
      <td rowspan="2" width="100px" height="75px">';
      //echo $row->id_sous_rub ;
      $affiche=150;
     
      // adresse de l'image
      $image="lemondedecamille/rubriques/".$nom_rubrique."/".$row->nom_sous_rub."/miniature2/miniature.jpg"; 
      $nom_sous_rub=$row->nom_sous_rub;
      //pour l'affichage du contenu ceci est un test
      $nom_dossier=$row->nom_sous_rub;
      
      if (!file_exists($image))
                  {
                    $image="avitila_fr/images_produits/goutte.gif";
                    $largeur2=100;
                    $hauteur2=75;
                  }
                   else
                  {
                    $taille=getimagesize($image);
                    $largeur=$taille[0];
                    $hauteur=$taille[1];
                    if ($hauteur>=$largeur)
                    {
                      $hauteur2=75;
                      $largeur2=100;
                    }
                    else
                    {
                      $largeur2=100;
                      $hauteur2=75;
                    }
                  }
echo'<img border="1" src="'.$image.'" width="'.$largeur2.'"  height="'.$hauteur2.'"></td>
      <td align="center" height="25px"><a href="./index.php?couleur='.$_GET['couleur'].'&v2=AFFICHE&v3='.$nom_rubrique.'&v4='.$nom_sous_rub.'"">'.$row->nom_sous_rub.'</a><td>
    </tr>
    <tr>
      <td align="left" height="50px">'.$row->commentaire.'</td>
    </tr></table>
    </div>';
}

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

06 mai 2008, 09:56

Si tu exécutes la requête seule dans MySQL le tri est bon ?

Eléphant du PHP | 130 Messages

06 mai 2008, 10:05

oui le tri se fait correctement dans mysql
mais des que je cherche a l'afficher ca se met en ordre croissant

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

06 mai 2008, 10:10

Donne un exemple (affichage mysql/affichage via PHP) et la structure de la table.

Eléphant du PHP | 130 Messages

06 mai 2008, 10:43

structure de la table

Code : Tout sélectionner

CREATE TABLE IF NOT EXISTS `sous_rubrique` ( `id_sous_rub` smallint(3) NOT NULL auto_increment, `nom_sous_rub` varchar(100) default NULL, `commentaire` varchar(255) default NULL, `id_rub` smallint(3) NOT NULL, `id_sec` smallint(3) NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id_sous_rub`) );
affichage via SQL

Code : Tout sélectionner

Résultat de la requête SQL Serveur: mysql5-6 Base de données: lemondedycam Généré le : Mar 06 Mai 2008 à 10:39 Généré par: phpMyAdmin OVH / MySQL 5.0.44-log requête SQL: SELECT id_sous_rub,nom_sous_rub,commentaire,id_rub,id_sec,date FROM sous_rubrique WHERE id_rub = '4' and id_sec <='4' ORDER BY date DESC LIMIT 0, 30 ; Enregistrements: 17 id_sous_rub nom_sous_rub commentaire id_rub id_sec date 54 27 avril 08 La charpente est pos&eacute;e. 4 3 2008-04-28 53 22 avril 08 Les appuis de fen&ecirc;tre sont termin&eacute;s. 4 3 2008-04-28 43 16 avril 08 Et de deux 4 1 2008-04-19 41 15 avril 08 Un pignon de fait reste un 4 1 2008-04-16 33 14 avril 08 On d&eacute;marre les pignons 4 1 2008-04-15 14 11 avril 08 Encore des parpaings 4 1 2008-04-11 13 10 avril 08 Debut de la ma&ccedil;onnerie parpaing 4 1 2008-04-11 12 09 avril 08 La ma&ccedil;onnerie en brique est presque finie 4 1 2008-04-11 11 08 avril 08 Encore les murs 4 1 2008-04-11 10 07 avril 08 Toujours les murs 4 1 2008-04-11 9 04 avril 08 Les murs encore 4 1 2008-04-11 8 03 avril 08 Les murs commencent 4 1 2008-04-11 7 14 mars 08 La dalle 4 1 2008-04-11 6 13 mars 08 Hourdis et poutrelles 4 1 2008-04-11 5 12 mars 08 Le vide sanitaire 4 1 2008-04-11 4 07 mars 08 Terrassement et fondations 4 1 2008-04-11 3 06 mars 08 Pose des chaises 4 1 2008-04

via php

******
******
Modifié en dernier par arno77 le 06 mai 2008, 14:08, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

06 mai 2008, 10:48

Je vois pas ce qui cloche

Fais un echo de $sql dans ta page pour voir le SQL qui est exécuté.

Eléphant du PHP | 130 Messages

06 mai 2008, 14:33

trouvé grace à l'echo une simple cote mal placé

merci pour ton aide