Announcement

Collapse
No announcement yet.

berechnen eines Wertes aus Datenbank

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • berechnen eines Wertes aus Datenbank

    Mein Problem ist folgendes.
    Ich habe meine ganzen Bierdeckel in einer Datenbank bespeichert.
    Nun möchte ich herausbekommen, aus wieviel Länder ich Bierdeckel habe.
    www.raheyne.de

    Mein Ziel ist nicht die Anzahl der Bierdeckel pro Land, sondern möchte ich errechnen, aus wieviel Ländern ich Bierdeckel habe. Kurz die Anzahl der Länder.

    In meinen Bsp. bekomme ich immer einen falschen Wert heraus.
    Habe ich einen denkfehler, oder gehe ich ganz falsch an die Sache heran.

    Code:
    <?php
    error_reporting(E_ALL);
    ini_set("display_errors", "1");
    $sumwelt = "SELECT DISTINCT COUNT(*) as summewelt FROM bierdeckel WHERE Land <> 'Deutschland'";
    $ergebniswelt = mysql_query($sumwelt) OR die(mysql_error());
    ?>
    <table width="33%" border="0">
    <td width="88%">Länder</td>
    <?php
    if(mysql_num_rows($ergebniswelt) > 0)
    { $i = 1;
        while ($row = mysql_fetch_assoc($ergebniswelt))
          {   
    ?>
        <td width="12%"><? echo $row['summewelt']?></td>
      </tr>
    </table>
    <?php
          }$i++;
    }
    ?>

  • #2
    vielleicht hilfts

    SELECT COUNT(DISTINCT Land) as summewelt FROM bierdeckel WHERE Land <> 'Deutschland'

    Comment


    • #3
      Hi,

      du musst die Befehle Count und Distinct vertauschen. Außerdem musst du statt dem Sternchen die Spalte mit den Ländernamen angeben.

      Also:

      [highlight=sql]
      DISTINCT(land))
      [/highlight]

      Gibt alle Länder zurück. Dabei werden gleiche Länder nur einmal zurückgegben.

      [highlight=sql]
      COUNT(DISTINCT(land))
      [/highlight]

      Zählt nur die zurückgegebenen Länder.

      Hier ein komplettes Beispiel:


      [highlight=sql]
      CREATE TABLE `test`.`bierdeckel` (
      `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
      `deckelName` TEXT NOT NULL ,
      `land` TEXT NOT NULL
      ) ENGINE = MYISAM ;

      INSERT INTO `test`.`bierdeckel` (
      `id` ,
      `deckelName` ,
      `land`
      )
      VALUES (
      NULL , 'test1', 'dänemark'
      ), (
      NULL , 'test2', 'dänemark'
      ), (
      NULL , 'test3', 'italien'
      ), (
      NULL , 'test4', 'frankreich'
      ), (
      NULL , 'test5', 'frankreich'
      );

      SELECT COUNT(DISTINCT(land)) FROM `bierdeckel`;

      DROP TABLE `bierdeckel`;
      [/highlight]

      [edit]
      und schon wieder hab ich es vergessen die Seite neu zu laden bevor ich poste.
      "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

      Viele Grüße Novi

      Comment


      • #4
        Danke NOVI und ebis

        eure Hinweise liefert den richtigen Wert

        <?php
        $sumwelt = "SELECT COUNT(DISTINCT land ) as summewelt FROM `bierdeckel`";
        $ergebniswelt = mysql_query($sumwelt) OR die(mysql_error());
        ?>
        <table width="33%" border="0">
        <tr>
        <td width="88%">Länder</td>
        <?php
        if(mysql_num_rows($ergebniswelt))
        {
        while ($row = mysql_fetch_assoc($ergebniswelt))
        {
        ?>
        <td width="12%"><? echo $row['summewelt']?></td>
        </tr>
        </table>

        <?php
        }}
        ?>

        vorallem viele Dank füe die schnelle Hilfe

        Pienkie

        Comment

        Working...
        X