IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Simple (?) Requête SQL


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut Simple (?) Requête SQL
    Voilà alors avant tout j'avou être débutant en SQL - PHP et Wordpress ^_^ alors pitié, soyez tolérant

    Bon, mon problème est celui ci :

    J'ai débuté la réalisation d'un blog sous wordpress, et j'aimerais pouvoir afficher dans ma sidebar, les 10 derniers articles commentés de mon blog.

    J'ai trouvé du code sur internet qui m'a permis d'obtenir à peu près le résultat que j'attendais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    global $wpdb;
    $number = 10;
    $comments = $wpdb->get_results("SELECT Distinct post_title, comment_post_ID, comment_author, comment_author_url, comment_ID
    FROM $wpdb->comments C, $wpdb->posts P 
    WHERE C.comment_approved = '1' AND C.comment_post_id = P.ID
    ORDER BY C.comment_date_gmt DESC LIMIT $number");?>
     
    <h2 align="left">Les 10 derniers articles commentés</h2><br />
     
    <ul id="recentcomments">
     
     
     
     
    <?php
    if ( $comments ) : foreach ($comments as $comment) :
    echo '<li class="recentcomments">' . sprintf(__('%2$s commenté par %1$s'), get_comment_author_link(), '<a href="'. get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>'."\n";
    endforeach; endif;
    ?>
    Et voici le résultat obtenu :

    - Article 1 commenté par ToTo
    - Article 1 commenté par TaTa
    - Article 2 commenté par TonTon
    - Article 3 commenté par TiTi
    - Article 3 commenté par TuTu

    (dsl pour le manque d'inspiration hein )

    Vous l'aurez compris, je ne veux pas que des mêmes articles de mon blog apparaissent plusieurs fois ici. L'idéal serait :

    -Article 1 commenté par ToTo
    -Article 2 commenté par TonTon
    -Article 3 commenté par TiTi

    Alors je me suis renseigné sur le comment du pourquoi, j'ai modifié la requête en essayant de faire un ' distinct ' ainsi que des jointures, mais mon trop faible niveau de compétence dans la matière m'handicape.

    En espérant qu'une âme charitable (et douée en sql-php) m'éclaire sur le sujet, je vous remercie d'avance d'avoir pris le temps de lire ce post,

    Amicalement,

    Omnislash

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi afficher le commentaire de Toto plutot que celui de Tata pour l'article 1 ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pourquoi afficher le commentaire de Toto plutot que celui de Tata pour l'article 1 ?
    Bah si tu regardes le code, c'est classé par ordre NON chronologique, donc je veux juste avoir le dernier post paru pour chaque articles ^^ Et comme toto a post son comment après TaTa ..

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sans le confirmer :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT post_title, comment_post_ID, comment_author, comment_author_url, comment_ID
    FROM  $wpdb->posts P 
    JOIN $wpdb->comments 
    ON C.comment_post_ID = P.ID
    WHERE C.comment_approved = 1
    GROUP BY P.ID
    ORDER BY C.comment_date_gmt
    DESC LIMIT $number
    (si tu n'as pas de bol, tu auras le premier commentaire )

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par sabotage Voir le message
    (si tu n'as pas de bol, tu auras le premier commentaire )
    Ahhh ! Merci de ta réponse, je n'ai déjà plus les articles qui se répètent


    Cependant j'ai pas de bol comme tu as dis, je me retrouve avec le 1er commentaire xD

    tu sais d'où ca peut venir ? ...

    Merci encore de tes réponses qui m'aide beaucoup

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans l'autre sens ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY C.comment_date_gmt DESC

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    GROUP BY P.ID
    ORDER BY C.comment_date_gmt DESC
    DESC LIMIT $number


    ne marche pas Plus rien ne s'affiche, peut être parce que les deux DESC sont cote a cote ?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    oups je n'avais pas vu qu'il trainait en bas
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORDER BY C.comment_date_gmt ASC
    LIMIT $number

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par sabotage Voir le message
    oups je n'avais pas vu qu'il trainait en bas
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORDER BY C.comment_date_gmt ASC
    LIMIT $number
    en fait j'ai déjà tester ca avant que tu ne répondes, et ca inverse le sens dans lequel mes articles apparaissent, mais ca me met toujours le 1er commentaire fait, et pas le dernier

  10. #10
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Essaie plutôt cette requête :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT t.post_title, c1.comment_post_ID, c1.comment_author, c1.comment_author_url, c1.comment_ID
    FROM $wpdb->comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) AS Date_dernier_commentaire
      FROM $wpdb->posts AS p
      INNER JOIN $wpdb->comments AS c ON c.comment_post_id = p.ID
      WHERE c.comment_approved = 1
    ) AS t ON c1.comment_date_gmt = t.Date_dernier_commentaire
    ORDER BY c1.comment_date_gmt DESC
    LIMIT $number

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Essaie plutôt cette requête :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT t.post_title, c1.comment_post_ID, c1.comment_author, c1.comment_author_url, c1.comment_ID
    FROM $wpdb->comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) AS Date_dernier_commentaire
      FROM $wpdb->posts AS p
      INNER JOIN $wpdb->comments AS c ON c.comment_post_id = p.ID
      WHERE c.comment_approved = 1
    ) AS t ON c1.comment_date_gmt = t.Date_dernier_commentaire
    ORDER BY c1.comment_date_gmt DESC
    LIMIT $number

    o_O Du premier coup Monsieur ! Le dernier article commenté à bien été affiché en montrant le dernier post ! Seul soucis maintenant, je ne vois que le dernier article commenté et pas mes 10 derniers >.< Bizarre non ? surtout quand je vois que tu as conservé la variable $number , peut-être une faute de syntaxe ? Ou peut-être est-ce à cause de MAX(c.comment_date_gmt) ?


    En tout cas merci de ta réponse

    C'est chiant les noobs désolé

  12. #12
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Que vaut la variable $number ?

    La sous-requête (alias 't'), donne la date du commentaire le plus récent pour chaque post.
    On fait ensuite une jointure de ce résultat avec la table des commentaires pour avoir les informations des commentaires.

    Si tu veux les 10 derniers commentaires, il faut que $number ait pour valeur 10.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Que vaut la variable $number ?

    La sous-requête (alias 't'), donne la date du commentaire le plus récent pour chaque post.
    On fait ensuite une jointure de ce résultat avec la table des commentaires pour avoir les informations des commentaires.

    Si tu veux les 10 derniers commentaires, il faut que $number ait pour valeur 10.

    Oui j'ai compris ta requête, mais même en attribuant la valeur 10 a la variable ca ne marche pas Bien qu'étant débutant, je pense que la variable prend bien la valeur 10 dans ce code la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    global $wpdb;
    $number = 10;
    $comments = $wpdb->get_results("SELECT t.post_title, c1.comment_post_ID, c1.comment_author, c1.comment_author_url, c1.comment_ID
    FROM $wpdb->comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) AS Date_dernier_commentaire
      FROM $wpdb->posts AS p
      INNER JOIN $wpdb->comments AS c ON c.comment_post_id = p.ID
      WHERE c.comment_approved = 1
    ) AS t ON c1.comment_date_gmt = t.Date_dernier_commentaire
    ORDER BY c1.comment_date_gmt DESC
    LIMIT $number");?>
    Ou alors j'ai vraiment rien compris du tout

    Merci une fois de plus de ta réponse rapide

  14. #14
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    En principe la variable $number a bien la valeur 10 oui !

    Il faudrait essayer d'afficher la requête exacte envoyée au serveur et la lancer dans phpMyAdmin pour voir ce que ça donne.

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Ok donc je viens de test la requete directement sous phpmyadmin.

    Seulement, je rencontre quelques problèmes (pour changer !)

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT t.post_title, c1.comment_post_ID, c1.comment_author, c1.comment_author_url, c1.comment_ID
    FROM $wpdb->comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) AS Date_dernier_commentaire
      FROM $wpdb->posts AS p
      INNER JOIN $wpdb->comments AS c ON c.comment_post_id = p.ID
      WHERE c.comment_approved = 1
    ) AS t ON c1.comment_date_gmt = t.Date_dernier_commentaire
    ORDER BY c1.comment_date_gmt DESC
    LIMIT $number
    donc la impossible pour le serveur de savoir ce que signifie $number, puisque ya pas la déclaration de ma variable dans la requete. Donc j'ai remplacé $number par 10. Est-ce correct niveau syntaxe ? j'imagine que non sinon on ne se serait pas emmerdé à faire la déclaration de ce même $number.

    Comment faire alors ?

    Voici le message d'erreur que me donne phpmyadmin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     MySQL a répondu:Documentation
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '->comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) A' at line 2
    Merci encore et encore pour toute l'attention que tu portes à mon problème.

  16. #16
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Remplacer $number par 10 est bien.

    Le message d'erreur par contre indique une erreur de syntaxe due à la partie objet php de la requête.
    Remplace ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM $wpdb->comments AS c1
    Par cela :
    Et remplace ceci :
    Par cela :
    Essaie donc de lancer cette requête dans phpMyAdmin :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT t.post_title, c1.comment_post_ID, c1.comment_author, c1.comment_author_url, c1.comment_ID
    FROM comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) AS Date_dernier_commentaire
      FROM posts AS p
      INNER JOIN comments AS c ON c.comment_post_id = p.ID
      WHERE c.comment_approved = 1
    ) AS t ON c1.comment_date_gmt = t.Date_dernier_commentaire
    ORDER BY c1.comment_date_gmt DESC
    LIMIT 10

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Voila ! Je viens de tester le tout dans phpmyadmin.

    Bon en fait au début il m'affichait une erreur : la table n'existe pas, j'ai vite compris que c'était a cause des modifs que tu avais faites, tu n'étais pas censé savoir que le $wpdb-> servait a donner le nom correct à mes tables qui en réalité ne s'appellent ni comments ni posts, mais wp_comments, wp_posts. Bref ^^

    La requête SQL fonctionne sous phpmyadmin et via mon code php, mais toujours le même problème, je ne vois que le dernier post du dernier article, et non les 10 derniers Retour à la case départ (ou presque, j'aurais quand même appris des choses grace à vous jusque là )

    Revoilou mon code x) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT t.post_title, c1.comment_post_ID, c1.comment_author, c1.comment_author_url, c1.comment_ID
    FROM wp_comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) AS Date_dernier_commentaire
      FROM wp_posts AS p
      INNER JOIN wp_comments AS c ON c.comment_post_id = p.ID
      WHERE c.comment_approved = 1
    ) AS t ON c1.comment_date_gmt = t.Date_dernier_commentaire
    ORDER BY c1.comment_date_gmt DESC
    LIMIT 10
    Merci...

  18. #18
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Tu peux me donner la structure des tables par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SHOW CREATE TABLE wp_posts ;
    SHOW CREATE TABLE wp_comments
    Ainsi qu'un petit jeu de données de ces tables pour que je puisse vérifier chez moi.

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    CREATE TABLE `wp_comments` (
     `comment_ID` bigint(20) unsigned NOT NULL auto_increment,
     `comment_post_ID` bigint(20) unsigned NOT NULL default '0',
     `comment_author` tinytext NOT NULL,
     `comment_author_email` varchar(100) NOT NULL default '',
     `comment_author_url` varchar(200) NOT NULL default '',
     `comment_author_IP` varchar(100) NOT NULL default '',
     `comment_date` datetime NOT NULL default '0000-00-00 00:00:00',
     `comment_date_gmt` datetime NOT NULL default '0000-00-00 00:00:00',
     `comment_content` text NOT NULL,
     `comment_karma` int(11) NOT NULL default '0',
     `comment_approved` varchar(20) NOT NULL default '1',
     `comment_agent` varchar(255) NOT NULL default '',
     `comment_type` varchar(20) NOT NULL default '',
     `comment_parent` bigint(20) unsigned NOT NULL default '0',
     `user_id` bigint(20) unsigned NOT NULL default '0',
     `choix` varchar(100) NOT NULL,
     PRIMARY KEY  (`comment_ID`),
     KEY `comment_approved` (`comment_approved`),
     KEY `comment_post_ID` (`comment_post_ID`),
     KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`),
     KEY `comment_date_gmt` (`comment_date_gmt`),
     KEY `comment_author_IP` (`comment_author_IP`),
     KEY `comment_post_ID_2` (`comment_post_ID`)
    ) ENGINE=MyISAM AUTO_INCREMENT=57 DEFAULT CHARSET=utf8

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    wp_posts  	CREATE TABLE `wp_posts` (
     `ID` bigint(20) unsigned NOT NULL auto_increment,
     `post_author` bigint(20) unsigned NOT NULL default '0',
     `post_date` datetime NOT NULL default '0000-00-00 00:00:00',
     `post_date_gmt` datetime NOT NULL default '0000-00-00 00:00:00',
     `post_content` longtext NOT NULL,
     `post_title` text NOT NULL,
     `post_excerpt` text NOT NULL,
     `post_status` varchar(20) NOT NULL default 'publish',
     `comment_status` varchar(20) NOT NULL default 'open',
     `ping_status` varchar(20) NOT NULL default 'open',
     `post_password` varchar(20) NOT NULL default '',
     `post_name` varchar(200) NOT NULL default '',
     `to_ping` text NOT NULL,
     `pinged` text NOT NULL,
     `post_modified` datetime NOT NULL default '0000-00-00 00:00:00',
     `post_modified_gmt` datetime NOT NULL default '0000-00-00 00:00:00',
     `post_content_filtered` text NOT NULL,
     `post_parent` bigint(20) unsigned NOT NULL default '0',
     `guid` varchar(255) NOT NULL default '',
     `menu_order` int(11) NOT NULL default '0',
     `post_type` varchar(20) NOT NULL default 'post',
     `post_mime_type` varchar(100) NOT NULL default '',
     `comment_count` bigint(20) NOT NULL default '0',
     PRIMARY KEY  (`ID`),
     KEY `post_name` (`post_name`),
     KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`),
     KEY `post_parent` (`post_parent`)
    ) ENGINE=MyISAM AUTO_INCREMENT=879 DEFAULT CHARSET=utf8
    Et bon appétit bien sur !


    Voila maintenant deux exemple de la table comment remplie :

    40 - 725 - 2015 - xXxX@hotmail.com -http://www.deux-mille-quinze.com - 93.16.56.250 - 2010-01-27 21:59:15 - 2010-01-27 19:59:15 - Ce qui est vraiment intéressant, c’est que APPLE v... - 0 - 1 - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;... - 0

    et l'autre :

    28 - 517 - David - XXX@hotmail.com - 84.97.240.23 - 2009-12-15 21:46:27 - 2009-12-15 19:46:27 - Cool... j'ai hâte de tester dans mon lycée - 0 - 1 - Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) Ap... - 0 - 0


    Voila ! La seule colonne vide dans ces deux exemples est : comment_type.

    Voici maintenant un exemple de la table posts remplie :

    725 - 3 - 2010-01-27 12:49:50 - 2010-01-27 10:49:50 - <p style="text-align: center;"><img class="alignce... - Tablette Apple C'est pour demain ! - publish - open - open - tablette-apple - 2010-01-27 12:51:19 - 2010-01-27 10:51:19 - 0 - http://www.xXxXx.com/Labs/?p=725 - 0 - post - 1



    517 - 3 - 2009-12-14 13:55:07 - 2009-12-14 11:55:07 - <img class="aligncenter size-full wp-image-518" ti... - WuiperSms System - Le wuip est votre petit messager de poche qui vous... - publish - open - open - wuiper-sms-system - 2009-12-14 13:59:03 - 2009-12-14 11:59:03 - 0 - http://www.xXXXX.com/Labs/?p=517 - 0 -post - 1

    Les seuls colonnes non remplies ici sont : post_password, to_ping, pinged, post_content_filtered, post_parent, menu_order et post_mime_type.


    Tu remarqueras que les deux exemples de chaque table correspondent entre eux J'espère bien t'avoir donné tout ce que tu demandais, merci encore

  20. #20
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Au temps pour moi !
    Il manquait dans ma requête un GROUP BY qui a dû sauter dans un copier coller.
    Essaie cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT t.post_title, c1.comment_post_ID, c1.comment_author, c1.comment_author_url, c1.comment_ID
    FROM wp_comments AS c1
    INNER JOIN (
      SELECT p.post_title, MAX(c.comment_date_gmt) AS Date_dernier_commentaire
      FROM wp_posts AS p
      INNER JOIN wp_comments AS c ON c.comment_post_id = p.ID
      WHERE c.comment_approved = 1
      GROUP BY p.post_title
    ) AS t ON c1.comment_date_gmt = t.Date_dernier_commentaire
    ORDER BY c1.comment_date_gmt DESC
    LIMIT 10

Discussions similaires

  1. je bloque sur de simples requêtes SQL
    Par ikuzar dans le forum Débuter
    Réponses: 6
    Dernier message: 17/09/2012, 20h17
  2. Question simple requête SQL
    Par parapluie dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/07/2010, 12h53
  3. Simple requête SQL.
    Par About dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/04/2008, 05h12
  4. Simple requête sql
    Par innova dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/11/2006, 13h33
  5. requête SQL simple
    Par Echizen1 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 20/09/2006, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo