Requête SQL

Requête SQL - SQL/NoSQL - Programmation

Marsh Posté le 23-01-2012 à 16:43:17    

Salut,
 
Je vous présente mon problème :
 
Je possède 2 tables :
 
* Une avec les commentaires :
 
id | titre | pseudo | commentaire | date
 
* Un deuxième avec les commentaire des commentaires de la table 1 :
 
id | Pseudo | commentaire | commentaire_id | date
 
Elle sont jointe grâce au commentaire_id.
 
Sur ma page d'accueil des commentaires ( http://www.toucheatoncube.fr/commentaires/index.php ), les commentaires sont classé par id décroissant alors que j'aimerai les classé en fonction du dernier commentaire de commentaire créé. (je sais pas si je suis clair ;) )
 
Donc sur une page de test j'essaye des requêtes:
 
http://www.toucheatoncube.fr/commentaires1/index.php
 
<?php
 
/*
Connexion à la BDD
*/
require "config.php";
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
?>
 
<table id="tableau_forum" border="1">
 
<?php
$sql="SELECT DISTINCT commentaire_id FROM comment ORDER BY id DESC";
$req = mysql_query($sql) or die(mysql_error());
 
while($data = mysql_fetch_assoc($req)) {
 
$sql2= "SELECT * FROM commentaires WHERE id = {$data['commentaire_id']}";
$req2= mysql_query($sql2) or die(mysql_error());
 
while($data2 = mysql_fetch_assoc($req2)){
?>
<tr>
<td><a href="comment.php?id=<?php echo $data2['id']; ?>"><?php echo stripslashes($data2['titre']);?></a></td>
<td><?php echo stripslashes($data2['pseudo']);?></td>
<td><?php echo date("d/m/Y G:i", strtotime($data2['date'])); ?></td>
</tr>
</tr>
<?php
}
}
?>
</table>
 
Merci de votre aide !


Message édité par Cocodu34 le 23-01-2012 à 18:57:20
Reply

Marsh Posté le 23-01-2012 à 16:43:17   

Reply

Marsh Posté le 23-01-2012 à 20:22:18    

ORDER BY date ?

Reply

Marsh Posté le 23-01-2012 à 21:08:17    

Non deja essayer ca ne marche pas.
 
Enfaite voila ce que je veux mais sans les doublon http://www.toucheatoncube.fr/commentaires1/index.php
 
Le code de cette page :
 

Citation :

<?php
       
        /*
        Connexion à la BDD
        */
        require "config.php";
        mysql_connect($adresse, $nom, $motdepasse);
        mysql_select_db($database);
       
        ?>
   
        <table id="tableau_forum" border="1">
   
        <?php
        $sql="SELECT * FROM comment ORDER BY id DESC";
        $req = mysql_query($sql) or die(mysql_error());
       
        while($data = mysql_fetch_assoc($req)) {
 
        $sql2= "SELECT * FROM commentaires WHERE id = {$data['commentaire_id']}";
        $req2= mysql_query($sql2) or die(mysql_error());
       
                while($data2 = mysql_fetch_assoc($req2)){
                ?>
          <tr>
        <td><a href="comment.php?id=<?php echo $data2['id']; ?>"><?php echo stripslashes($data2['titre']);?></a></td>
        <td><?php echo stripslashes($data2['pseudo']);?></td>
        <td><?php echo date("d/m/Y G:i", strtotime($data2['date'])); ?></td>
  </tr>
     </tr>
        <?php
    }
        }
        ?>
</table>


Message édité par Cocodu34 le 23-01-2012 à 21:09:12
Reply

Marsh Posté le 23-01-2012 à 21:42:21    

Quelle est la structure de ta table ? Ou de tes tables plutôt ? comment et commentaire, que contiennent-elles ?
Je vois que tu exécutes une requête dans la boucle, c'est généralement une mauvaise idée et pourrait expliquer les doublons.

Reply

Marsh Posté le 24-01-2012 à 07:35:04    

Voui, la structure avec les meme noms que dansle code ca aidera :)
Tu devrais pouvoir tout récuperer en une seule query et donc utiliser un Order by date comme suggeré par Pc_eXPert.

Reply

Marsh Posté le 24-01-2012 à 09:51:55    

si c'est dans l'ordre décroissant, ORDER BY Date DESC


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-01-2012 à 14:01:44    

Pour pas simplenent :

Code :
  1. SELECT
  2.    *
  3. FROM
  4.    COMMENTAIRES
  5. WHERE
  6.    ID IN (
  7.        SELECT DISTINCT
  8.            COMMENTAIRE_ID
  9.        FROM
  10.            COMMENT
  11.        ORDER BY
  12.            DATE DESC
  13.    )
  14. ;


:??:


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed