Partage
  • Partager sur Facebook
  • Partager sur Twitter

Opérateur DISTINCT qui pose problème

    21 avril 2011 à 21:00:15

    Bonsoir les Zéros, j'ai un problème assez troublant et j'aimerais y voir un peu plus clair. Voici la requête :
    $sel = mysql_query("
    SELECT distinct contribuables.numero FROM contribuables
    JOIN paiement_taxes
    ON contribuables.numero = paiement_taxes.numero 
    WHERE paiement_taxes.id_quartier = '".$_SESSION['id_quartier']."'	
    AND timestamp_identification >= '".$_SESSION['timestamp_debut']."'
    AND timestamp_identification < '".$_SESSION['timestamp_fin']."'  
    AND paiement_taxes.numero != 1 ORDER BY nom DESC LIMIT ".$premierePageAafficher.",".$nombreDeTitresParPage) 
    or exit(mysql_error());
    
    $sql3 = mysql_fetch_array($sel);
    
    echo $sql3['nom'];
    


    Et voici ce que ça m'affiche :

    Notice: Undefined index: nom in C:\wamp\www\contribuable\sel_com0qua1act0sex0agn0_id.php on line 14


    Maintenant lorsque j'ôte l'opérateur DISTINCT de cette manière

    $sel = mysql_query("
    SELECT * FROM contribuables
    JOIN paiement_taxes
    ON contribuables.numero = paiement_taxes.numero 
    WHERE paiement_taxes.id_quartier = '".$_SESSION['id_quartier']."'	
    AND timestamp_identification >= '".$_SESSION['timestamp_debut']."'
    AND timestamp_identification < '".$_SESSION['timestamp_fin']."'  
    AND paiement_taxes.numero != 1 ORDER BY nom DESC LIMIT ".$premierePageAafficher.",".$nombreDeTitresParPage) 
    or exit(mysql_error());
    
    $sql3 = mysql_fetch_array($sel);
    
    echo $sql3['nom'];
    

    Ca ne renvoie plus d'erreurs, la page s'affiche normalement mais avec des doublons! Or l'opérateur distinct m'évite les doublons!

    Y a-t-il une erreur dans ma syntaxe?

    A noter que lorsque je veux compter le nombre de lignes qu'affiche cette requête presque similaire
    $nbr_entree = mysql_query("
    SELECT distinct contribuables.numero FROM contribuables
    JOIN paiement_taxes
    ON contribuables.numero = paiement_taxes.numero 
    WHERE paiement_taxes.id_quartier = '".$_SESSION['id_quartier']."'
    AND timestamp_identification >= '".$_SESSION['timestamp_debut']."'
    AND timestamp_identification < '".$_SESSION['timestamp_fin']."' 
    AND paiement_taxes.numero != 1
    ") or exit(mysql_error());
    
    $nombreDeTitresTotal = mysql_num_rows($nbr_entree);
    
    echo $nombreDeTitresTotal;
    


    Je n'ai non plus aucun problème! Je suis perdu! Quelqu'un pourrait-il m'aider?
    • Partager sur Facebook
    • Partager sur Twitter
      21 avril 2011 à 21:09:08

      C'est normal, tu ne sélectionne que la colonne `numero` dans ta requête...
      • Partager sur Facebook
      • Partager sur Twitter
      Erreur PDO - Installation Wamp - Docs PHP et MYSQL.
        21 avril 2011 à 21:26:36

        Oui tu as vu juste b-dav. Merci

        Mais ça soulève un autre problème. Il est probable que des personnes différentes aient un même nom! Comment vais-je donc faire pour éviter les doublons mais en considérant ce problème?

        Parce que dans la requête, le nom doit être affiché. N'y a pas moyens de filtrer pour qu'il n'y ait pas de doublons, bref que cela puisse se filtrer à l'aide du numéro?

        Merci de ton aide
        • Partager sur Facebook
        • Partager sur Twitter
          22 avril 2011 à 0:32:30

          Le message qui suit est une réponse automatique activée par un modérateur.
          Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
          Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


          Veuillez modifier le titre du sujet


          Bonjour,

          Ce sujet a un titre qui ne décrit pas correctement le sujet, ou il est écrit en majuscules.

          La présentation de votre message étant néanmoins correcte, nous ne fermons pas le sujet, mais vous êtes invité(e) à modifier son titre en éditant votre premier message.

          Cette modification doit être faite dans les plus brefs délais, sans quoi nous serons dans l’obligation de clore le sujet .


          Voici quelques correspondances pour vous aider à choisir au mieux votre titre :




          Comment fait-on pour éditer un titre ?

          Si vous êtes l'auteur du topic, vous pourrez uniquement le changer en éditant le premier post du topic à l'aide de l'icône Image utilisateur.



          Merci de votre compréhension :)
          Les modérateurs.
          • Partager sur Facebook
          • Partager sur Twitter
          Zeste de Savoir, le site qui en a dans le citron !
            22 avril 2011 à 0:33:31

            Sujet déplacé dans le forum « bases de données »
            • Partager sur Facebook
            • Partager sur Twitter
            Zeste de Savoir, le site qui en a dans le citron !

            Opérateur DISTINCT qui pose problème

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown