Datenbankeinträge nicht doppelt zählen

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

  • Datenbankeinträge nicht doppelt zählen

    Hi,

    ich habe folgendes Problem:

    Ich habe in meiner Datenbank z.B. 10 Einträge. Davon heißen 3 gleich:

    abc
    def
    ghi
    jkl
    abc
    mno
    pqr
    stu
    abc
    vwx

    Nach mysql_num_rows würde ja nun eine 10 erscheinen. es soll aber nur 8 sein, da gleichnamige nicht gewertet werden sollen.

    Wie mach ich das?

    Vielen Dank

  • #2
    SELECT COUNT(DISTINCT attributname) FROM tabelle ??

    mysql_num_rows() ist keine Funktion um Datensätze zu zählen ... sondern um die Anzahl Datensätze einer Abfrage zu ermitteln ... !
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Hi,

      Hmmm... und wie werte ich das dann aus?

      $res = mysql_query($sql, $db);

      und dann?

      Ansonsten schonmal vielen Dank!
      Zuletzt geändert von lsgdcity; 23.02.2004, 19:46.

      Kommentar


      • #4
        mysql_fetch_object/array ???
        Sunshine CMS
        BannerAdManagement
        Borlabs - because we make IT easier
        Formulargenerator [color=red]Neu![/color]
        Herkunftsstatistik [color=red]Neu![/color]

        Kommentar


        • #5
          ahhhh...

          vielen dank, merci beaucoup, thank you, ....

          Kommentar


          • #6
            Hi,

            sodalle, hab endlich den anderen code fehlerfrei zum laufen bekommen.
            Nun ist es aber so, dass er mir KEIN Ergebnis zurückliefert!

            Kann mir jemand erklären, was das DISTINCT ganz genau macht? und was das COUNT in macht? SELECT COUNT(DISTINCT attributname) FROM ...

            würde doch dann so aussehen: "SELECT COUNT(DISTINCT titel) FROM..."
            aber er gibt mir 0 zurück.

            -------------------------

            Ich möchte die Tabelle "software" komplett durchlaufen und ausgeben lassen. Dabei soll er aber, sollten 2 einträge den gleichen namen haben, den 2. (wenns mehr gibt, die anderen auch) AUSLASSEN!

            Ich hab keinen blassen schimmer, wie ich das machen soll.
            Habt ihr ne Lösung?

            Kommentar


            • #7
              Kann mir jemand erklären, was das DISTINCT ganz genau macht? und was das COUNT in macht? SELECT COUNT(DISTINCT attributname) FROM ...
              dafür eignet sich das manual ganz gut!

              Kommentar


              • #8
                Hi,

                ich bekomme bei der suche nach DISTINCT nur 2 Ergebnisse und wenn ich draufklick, bekomm ich immer nur eine weiße Seite...

                hast du ne lösung zum unteren?

                Kommentar


                • #9
                  Schau mal bei little idiot da steht was dazu.

                  Offe

                  Kommentar


                  • #10
                    HI,

                    ok, danke, nun hat sich die Frage nach der Erklärung erledigt.
                    Aber wie kann man das eigentliche Problem lösen?

                    ----------------------------------------------

                    PHP-Code:
                    <?php
                    include('lib/config.php');
                    $sql "SELECT COUNT(DISTINCT softwareid) FROM software";
                    $res mysql_query($sql) or mysql_fehler();
                    while(
                    $info mysql_fetch_object($res)){
                    echo 
                    $info->titel.'<br>';
                    }
                    ?>
                    Die config.php enthält nur das verbinden zur mysql-datenbank!
                    Warum bekomme ich da kein Ergebnis?

                    Kommentar


                    • #11
                      $sql = "SELECT COUNT(DISTINCT softwareid) FROM software";
                      das "DISTINCT " gibt für mich irgendwie keinen Sinn.

                      EDIT:

                      $sql = "SELECT * FROM software";
                      damit du auf $info->titel zugreifen kannst.



                      Offe
                      Zuletzt geändert von Offe1; 28.02.2004, 13:23.

                      Kommentar


                      • #12
                        Ja,

                        aber das Problem ist, dass in dieser Datenbank 3 Einträge sind.

                        Einer mit Namen: Titel 1
                        2 mit Namen: Titel 2

                        Nun würden ja 3 echos ausgegeben. Aber es sollen nur 2 ausgegeben werden: Titel 1 und Titel 2, das 2. mal Titel 2 soll er ignorieren

                        Kommentar


                        • #13
                          select distinct title

                          Kommentar


                          • #14
                            Boah, vielen Dank!

                            Man... irgendwie hätt ich auch selbst draufkommen können!
                            Danke nochmal, dass ihr des ausgehalten habt

                            -------------------------------

                            Hmm, nun besteht aber das Problem, an die restlichen Daten, wie z.B. Beschreibung etc. zu kommen...

                            wie mach ich des nun?

                            Wenn ich nun wieder ne normale Abfrage mit "SELECT * FROM software WHERE titel='$titel'" ist ja alles wieder zunichte (da danach ne while-schleife kommt).

                            Kommentar


                            • #15
                              erklär mal näher!

                              Kommentar

                              Lädt...
                              X