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

Langage PHP Discussion :

Chercher des doublons dans mes commentaires [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Par défaut Chercher des doublons dans mes commentaires
    Salut

    J'ai une horreur des doublons, même si je vérifie mes commentaires assez souvent, y'en a énormément qui passe au travers.

    Voici ce que j'ai fait :

    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
    <?php
    // Listage de tous les objets
    $qc = mysql_query('SELECT id FROM items ORDER BY id');
    while($rc = mysql_fetch_array($qc))
    {
        // On recherche quels commentaires sont en double
        $qcb = mysql_query('SELECT id_fluxbb, id_item FROM commentaires WHERE id_item = '.$rc['id'].' GROUP BY id_fluxbb HAVING COUNT(*) > 1');
        while($rcb = mysql_fetch_array($qcb))
        {
            // On liste un a un les commentaires en doubles
            $a = mysql_query('SELECT * FROM commentaires WHERE id_fluxbb = '.$rcb['id_fluxbb'].' AND id_item = '.$rcb['id_item']);
            while($b = mysql_fetch_array($a))
            {
                echo '<div class="cadre commentaire">
                    <div class="commentaire_avatar">'.generate_avatar_markup($b['id_fluxbb']).'</div>
     
                    <p class="commentaire_entete">
                        '.get_id_name($b['id_fluxbb']).',
                        <span class="commentaire_date">'.temps_ecoule($b['time']).'</span> -
                        <a href="?id_commentaire='.$b['id'].'&amp;supprimer"><img src="../img/del.png" alt="Supprimer le commentaire" /></a><br />
     
                        <em>#'.$b['id'].'</em> - '.$b['id_item'].'
                    </p>
                    <div class="commentaire_message">'.$b['commentaire'].'</div>
                </div>';
            }
        }
    }
    ?>
    Bon, c'est dégueulasse et lent, ouép, en plus ça prends en compte seulement les doublons sur l'id de l'objet et l'id du membre, et non un véritable doublon sur le commentaire (par ex: 2 * lol)

    Comment feriez-vous ?

  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
    Par défaut
    Je ne comprends pas pourquoi il te faut 3 requêtes. Que representent la table items et la colonne id_fluxbb par rapport aux commentaires ?

    Pour le reste il faudrait plutôt que tu comprennes comment tu obtiens des doublons pour empecher qu'ils existent plutôt que de les supprimer à psoteriori.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Par défaut
    Vu qu'on ne peut pas vraiment afficher les doublons, enfin je ne sais pas du tout comment, je dois donc faire 3 requêtes

    - Tu listes tous les objets
    - Tu regardes quel commentaire est en double dans chaque objet
    - Tu listes les commentaires en double

    J'ai fait en sorte de ne plus avoir de doublon mais j'ai environ 100k de commentaire à parser, alors à la main c'est dur !

    id_fluxbb correspond à l'id du membre qui a posté le commentaire !

    La table items est la table où les fiches des objets en ventes sont sotckés et la table commentaire, bin où y'a les commentaires

  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
    Par défaut
    Comme ça ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_item, id_fluxbb, commentaire
    FROM commentaires JOIN items ON commentaires.id_item = items.id
    GROUP BY id_item, id_fluxbb, commentaire
    HAVING COUNT(*) > 1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Par défaut
    Oui , sauf que en faisant ça, on doit supprimer à la main les commentaires, vu que y'en a qu'un sur les 2 ou 3 qui s'affichent

    C'est ça qui est chiant

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 25
    Par défaut
    En fait c'est ça merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. chercher des rue dans une carte
    Par .:dev:. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 21/09/2005, 10h29
  2. problème de detection des CD dans mes lecteurs
    Par zakfa dans le forum Windows XP
    Réponses: 8
    Dernier message: 31/03/2005, 11h07
  3. Eliminer des Doublon dans une Table
    Par Soulama dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/02/2005, 14h27
  4. chercher des données dans sa propre requete...
    Par shadowbob dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/06/2004, 17h13

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