DISTINCT gibt IMMER auch letzten DB Eintrag zusätzlich mit aus

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DISTINCT gibt IMMER auch letzten DB Eintrag zusätzlich mit aus

    Hi Leute,

    Langsam glaub ich werd ich irre.
    Mein PHP Script soll einfach die verschiedenen Länder, welche als Benutzerdaten in einer DB stehen ausgeben. Ganz einfache Abfrage:

    $sql = "SELECT DISTINCT land FROM tbl_handler WHERE active=1";
    $erg = mysql_query($sql, $verbindung);
    $num_rows = mysql_num_rows($erg);

    if ($erg && $num_rows != 0)
    while($row = mysql_fetch_array($erg))
    echo "<option value='".$row['land']."'>".$row['land']."</option>";


    Das Ergebnis sind immer die verschiedenen einzelnen Länder PLUS das Land aus dem letzten Datensatz. Egal was da drin steht.
    Die Summe der gesmaten Datensätze sind ca. 900.
    Weiß wer Rat? Vielleicht is ja auch ein SQL bug (feature *g*) oder so..

    Dank euch für Infos..
    mg markus

  • #2
    1. immer php-tags für code benutzen (editiere dein post)
    2. außer mit php solltest du die abfragen immer mit phpmyadmin o.ä. testen. deine query sieht zwar richtig aus, aber evtl. stimmt irgendwo etwas anderes nicht. grenze den fehler erst mal ein.

    Kommentar


    • #3
      Ok mach ich...

      Hab nun mal in phpmyadmin das SQL Statement eingegeben

      SELECT DISTINCT land FROM tbl_handler WHERE active=1

      phpmyadmin sag zwar das er die Abfrage abgearbeitet hat, gibt aber nichts aus.
      Liegt auch nicht an der Anzahl der Datensätze, hab ich schon ausbropiert.

      Versuche ich z.B. die DISTINCT Abfrage mit einer anderen Tabelle durchzuführen funktinoierts problemlos.

      Schau also so aus als ob das Problem an der Tabelle selbst liegt?

      Kommentar


      • #4
        hello,

        glaube zwar nicht, das das nen unterschied macht, aber versuch mal trotzdem mit klammer um land...

        SELECT DISTINCT (land) FROM tbl_handler WHERE active=1

        und das feld "active" ist wirklich numerisch? nicht etwa alpha? man kan mit sql nämlich auch mit "feldpositionen" 1 2 3 usw. arbeiten, evtl. vergleicht der hier active mit feld 1 in deiner datei?

        SELECT DISTINCT (land) FROM tbl_handler WHERE active="1"

        just my 2 cent

        k.

        Kommentar


        • #5
          Nein leider, keine Änderung..

          active ist auch 'tinyint(4)'

          Hab auch den Table schon neu angelegt und ändert auch nichts..
          komisch..

          Kommentar


          • #6
            Hmm, wenn du die Abfrage mit myadmin ausführst, hast du keine Datensätze, aber im Script tauchen auf einmal welche auf???

            Zeig mal nen Auszug aus dem Inhalt deiner Tabelle an + Struktur.

            Leg auch mal ne Testtabelle mit ca. 10 Einträgen an. Was passiert?

            Kommentar


            • #7
              Also hab auch schon ne neue Tabelle angelegt und einträge dirket in phpmyadmin eingegeben. (5 Einträge ) Ist auch deselbe Problem.

              Hab die Struct. & Daten als Datei angehängt
              Angehängte Dateien

              Kommentar


              • #8
                die spalte active fehlt bei den daten

                Kommentar


                • #9
                  Verbindest du dich im Script mit der gleichen DB wie auch bei PhpMyAdmin?
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar


                  • #10
                    jep..ist gleich

                    Kommentar


                    • #11
                      sorry hab ich abgeschnitten

                      hier nochmals das bild mit den daten
                      Angehängte Dateien

                      Kommentar


                      • #12
                        wenn du mir dann noch nen screenshot von query und ergebnis machst.

                        Kommentar


                        • #13
                          ok liegt bei...
                          muss aber jetzt zu meiner Überraschung sagen das phpmyadmin das erste mal ne ausgabe gemacht hat.
                          bisher wurde nie etwas ausgegeben.
                          Wie man aber sieht ist Schweiz zweimal drinnen, da der letzte Datensatz Schweiz beinhaltet.
                          (Stimmt jetzt nicht mit dem Screenshot von vorhin überein, das war nur ein auszug)
                          Angehängte Dateien

                          Kommentar


                          • #14
                            mir ist das verhalten in der tat nicht nachvollziehbar.

                            abgesehen davon, dass ich active nicht mit tinyint formatieren würde, ist mir absolut schleierhaft, was da abgeht.

                            kannst du mal bitte ein dump der (demo)tabelle posten.

                            Kommentar

                            Lädt...
                            X