Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2996 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requête SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête SQL

n°2122939
Cocodu34
Posté le 23-01-2012 à 16:43:17  profilanswer
 

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
mood
Publicité
Posté le 23-01-2012 à 16:43:17  profilanswer
 

n°2122965
Pc_eXPert
Posté le 23-01-2012 à 20:22:18  profilanswer
 

ORDER BY date ?

n°2122969
Cocodu34
Posté le 23-01-2012 à 21:08:17  profilanswer
 

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
n°2122974
Pc_eXPert
Posté le 23-01-2012 à 21:42:21  profilanswer
 

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.

n°2122982
Oliiii
Posté le 24-01-2012 à 07:35:04  profilanswer
 

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.

n°2122994
rufo
Pas me confondre avec Lycos!
Posté le 24-01-2012 à 09:51:55  profilanswer
 

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
n°2123048
MEI
|DarthPingoo(tm)|
Posté le 24-01-2012 à 14:01:44  profilanswer
 

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 |

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requête SQL

 

Sujets relatifs
Que renvoi une requête SQL en C++ ?Requête SQL sans résultat en VBA (ADO)
[SQL] Requète SQL complexe[SQL] Resultat requete dans une variable
1 requete SQL avec deux Requete DistincteExcel et SQL requete avec deux condition?
problème (opérateur manquant) dans Requete SQL sous Excel VBAHelp requête SQL
Problème de requete SQLSQL
Plus de sujets relatifs à : Requête SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR