Probleme mit Count, Wert stimmt nicht!

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

  • Probleme mit Count, Wert stimmt nicht!

    Hallo Leute, ich steh am schlauch und häng voll.

    Folgendes:
    Ich habe eine kleine Datenbank, wo User sich eintragen.

    In dieser Datenbank gibt es PLZ, Ort, Name, Adresse usw.

    Nun möchte ich als ergebniss folgendes angezeigt bekommen:

    PLZ, Ort, Anzahl

    wobei die Anzahl jene ist, wie oft die PLZ in der DB vorkommt.

    Ich hab schon mit count versucht, komm aber auf keinen grünen zweig:

    Beispiel:
    123456 Musterort 3
    245681 Musterstatt 1
    558996 Musterdorf 2

    Anbei mein code bis dato:
    PHP-Code:
    $result1 mysql_query("select * from deutschland group by plz");
    while(
    $row mysql_fetch_array($result1))
    {
    $plz $row['plz'];
    $ort $row['ort'];

    if ( 
    $zeile++ % == 0
    $hgf "silver";
    else
    $hgf "";

    echo 
    "<tr bgcolor=\"$hgf\">
        <td width=\"70\">
    $plz</td>
        <td width=\"200\">
    $ort</td>
        <td width=\"50\">"
    ;
    $buffer mysql_query("SELECT COUNT(plz) FROM deutschland GROUP BY plz"); 
    $count mysql_result($buffer0);
    echo 
    "$count";
    echo 
    "</td>
      </tr>"
    ;

    der $count liefert mir immer eine 2 und nicht das, wie oft die PLZ vorkommt.

    Könnte mir da mal jemand unterstützen bitte?

    LG, m-werk
    LG, m-werk

  • #2
    du weisst nicht wirklich was du da tutst, oder? schon mal daran gedacht alle Werte mal auszugeben, anstatt nur einen?

    Kommentar


    • #3
      so, hab nun mal den php-Teil etwas umgebaut.

      PHP-Code:
      $sq3 mysql_query("SELECT * FROM deutschland group by plz ")or die("Keine Verbindung Deutschland-Tabelle!");
      $n3 mysql_num_rows($sq3);

      for(
      $i3=0;$i3<$n3;$i3++){
      $e3=mysql_fetch_array($sq3);

      $plz=$e3[6];
      $ort=$e3[7];

      $summe=count($plz);

      if ( 
      $zeile++ % == 0
      $hgf "silver";
      else
      $hgf "";

      echo 
      "<tr bgcolor=\"$hgf\">
          <td width=\"70\">
      $plz</td>
          <td width=\"200\">
      $ort</td>
          <td width=\"50\">
      $summe</td>
        </tr>"
      ;

      Jetzt kommt als ergebniss $summe eine 1, da ja hier auf plz gruppiert wurde und jede Zeile ausgelesen wird (nehm ich mal an)

      ich bin leider einfach noch nicht dahinter gekommen.
      LG, m-werk

      Kommentar


      • #4
        Hallo,

        Wenn du den Ort haben willst und die Anzahl der dazugehörigen PLZ's dann solltest du folgenden SQL-Befehl nehmen:
        select count(plz), ort From TABELLE group by ort.
        Wer anderen eine Grube gräbt, der hat ein Grubengrabgerät.

        Kommentar


        • #5
          Du sollst mal deine logische Denkfähigkeit etwas mehr Training verpassen.

          was hälst du von

          select plz, count(plz) from ... group by plz => mehrfach vorkommenen plz pro plz zählen

          select ort, count(plz) from ... group by ort => Anzahl von plz pro Ort ermitteln

          ...

          Kommentar


          • #6
            Hallo,

            das will er doch haben, nach seinem Beispiel von oben möchte er die Anzahl an PLZ von einem Ort haben, wenn das nicht so sein sollte, dann gebe ich dir recht.
            Wer anderen eine Grube gräbt, der hat ein Grubengrabgerät.

            Kommentar


            • #7
              ich hab schon so viele selects ausprobiert.

              ich hab das schon verstanden mit den count und group by doch kann ich es in php nicht umsetzen, so dass wirklich die anzahl neben der plz steht.

              ich schaffs einfach nicht. egal was ich mach, es kommt immer was anderes heraus, was eigentlich herauskommen sollte.
              LG, m-werk

              Kommentar


              • #8
                Ich habs geschafft. Nach einigen überlegungen und grübeln, hab ich nun die summe da. UND DIE IST AUCH NOCH RICHTIG.

                PHP-Code:
                $sq3 mysql_query("select *, count(plz) as sum1 From deutschland group by plz")or die("Keine Verbindung Deutschland-Tabelle!");
                $n3 mysql_num_rows($sq3);

                for(
                $i3=0;$i3<$n3;$i3++){
                $e3=mysql_fetch_array($sq3);

                $plz=$e3[6];
                $ort=$e3[7];

                $summe=$e3['sum1'];

                if ( 
                $zeile++ % == 0
                $hgf "silver";
                else
                $hgf "";

                echo 
                "<tr bgcolor=\"$hgf\">
                    <td width=\"70\">
                $plz</td>
                    <td width=\"200\">
                $ort</td>
                    <td width=\"50\">
                $summe </td>
                      </tr>"
                ;

                DANKE für eure unterstützung

                LG, m-werk
                LG, m-werk

                Kommentar

                Lädt...
                X