...group By Count...?!?!?!

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

  • ...group By Count...?!?!?!

    hi leute..
    ich hab hier folgendes problem..
    zuerst ma code..

    PHP-Code:
    <?php
    $connection 
    false;
      include(
    "inc/conn.inc.php");

      
    // Tabellenfarbe aendert sich - Code Anfang
      
    function bgcolor($row 1)
      {
      static 
    $farbe;
      static 
    $col = array('#DBEAF5',
                          
    '#FFFFFF'
                          
    ); // etc.
      
    $bg $col[(int)($farbe .00000001)];
      
    $farbe += $row;
      if (
    $farbe >= count($col)) $farbe 0;
      return 
    $bg;
      }
      
    // Tabellenfarbe aendert sich - Code Ende

      
    $connection mysql_connect("$host""$user""$pwd");

      if (
    connection)
         {

         if (@
    mysql_select_db($dbname))
            {

            
    $result mysql_query("SELECT spiele, count(*) AS zaehle FROM games GROUP BY zaehle");
            if (
    $result)
               {
               echo 
    "<p><font face=\"Trebuchet MS\" size=\"3\"><strong>Patches</strong></font></p>";
               
    $i 0;

               while(
    $row mysql_fetch_array ($resultMYSQL_NUM))

               
    printf ("<table border=\"1\" width=\"270\" bgcolor='%s' cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"150\"><a href=\"suche.php?show=$row[$i]\" class=\"link\"> %s </a></td> <td width=\"120\" align=\"right\" class=\"link\">%s Patches</td></tr></table>"bgcolor(1), $row[$i], $row[$i+1]);

               
    $i $i+2;
               }
             else
               echo 
    "<br>Es konnten keine Datenbest&auml;nde gefunden werden.<br>\n";
            }
         else
            echo 
    "Die Verbindung zur Datenbank <b>$dbname</b> ist im Moment nicht m&ouml;glich.\n";
         }
      else
         echo 
    "<hr>Verbindungsaufbau fehlgeschlagen !<hr>\n";
         
    mysql_close($link);
    ?>

    hier mein problem...

    die abfrage:
    PHP-Code:
    $result mysql_query("SELECT spiele, count(*) AS zaehle FROM games GROUP BY zaehle"); 
    ergibt immer
    Es konnten keine Datenbest&auml;nde gefunden werden.

    wenn ich GROUP BY spiele speichere, klappts aber ich will die anzahl
    der patches abwaerts ausgeben:

    Beispiel 1:

    spiel 1 - 9 patches
    spiel 2 - 7 Patches
    spiel 3 - 6 Patches
    spiel 4 - 3 Patches
    usw.
    so will ich es eigentlich haben..
    es wird nicht alphabetisch nach den spielen sortiert sondern
    anzahl der patches des jeweiligen spiels..

    statt dessen bekomme ich mit GROUP BY spiele statt GROUP BY zaehle dat:

    Beispiel 2:
    spiel 3 - 6 Patches
    spiel 2 - 7 Patches
    spiel 4 - 3 Patches
    spiel 1 - 9 patches

    die spiele sind alphabetisch geordnet..
    stattdessen will ich nach den patches absteigend ordnen..

    dat klappt wie gesagt nicht mit
    PHP-Code:
    $result mysql_query("SELECT spiele, count(*) AS zaehle FROM games GROUP BY zaehle"); 
    ausgabe:
    Es konnten keine Datenbest&auml;nde gefunden werden.


    aber mit
    PHP-Code:
    $result mysql_query("SELECT spiele, count(*) AS zaehle FROM games GROUP BY spiele"); 
    ausgabe:
    siehe beispiel nr. 2


    bitte bitte helft mir..

    ich kriegs einfach net hin..

    danke schon ma im vorraus...

    und allen ein frohes fest..

    gruss,
    frank the tank


    EDIT:
    [php]-tags by Abraxax
    Zuletzt geändert von Abraxax; 25.12.2003, 09:13.

  • #2
    gewöhne dir mal die [php ]-tags an.



    wenn ich dich jetzt richtig verstanden habe.....

    - ausgabe aller spíelenamen
    - anzahl der dazugehörigen patches.
    - patches absteigend sortiert.

    dann ist das die query.

    PHP-Code:
    $res mysql_query("SELECT
                            spiele,
                            COUNT(*) zaehle
                        FROM
                            games
                        GROUP BY
                            spiele
                        ORDER BY
                            zaehle DESC"
    )
           or die(
    mysql_error()); 
    und denke auch immer an das or die(mysql_error()) .


    auch solltest du mal kürzere zeilen schreiben. ;-)
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      *verschieb* nach SQL, da es ja ein Problem mit dem verständnis des Querys ist.

      Kommentar


      • #4
        Original geschrieben von Abraxax
        gewöhne dir mal die [php ]-tags an.



        wenn ich dich jetzt richtig verstanden habe.....

        - ausgabe aller spíelenamen
        - anzahl der dazugehörigen patches.
        - patches absteigend sortiert.

        dann ist das die query.

        PHP-Code:
        $res mysql_query("SELECT
                                spiele,
                                COUNT(*) zaehle
                            FROM
                                games
                            GROUP BY
                                spiele
                            ORDER BY
                                zaehle DESC"
        )
               or die(
        mysql_error()); 
        und denke auch immer an das or die(mysql_error()) .


        auch solltest du mal kürzere zeilen schreiben. ;-)

        danke danke danke....! ich bin gerettet..

        werd auch an dat - or die(mysql_error()) - denken..

        Kommentar


        • #5
          Original geschrieben von frank the tank
          danke danke danke....! ich bin gerettet..
          gut.

          Original geschrieben von frank the tank
          werd auch an dat - or die(mysql_error()) - denken..
          brav.


          BTW. man muss nicht alles zitieren.

          es reicht ein teil. oder eben gar nichts.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            hmmm..
            ich dachte immer, dat man zwischen ...COUNT(*).. und ...zaehle... dat AS schreiben muss..

            warum funktioniert dat denn ohne..?

            naja egal..
            danke nochmals fuer deine hilfe..

            Kommentar


            • #7
              Weil du falsch gedacht hast. Dein "muss" ist ein "kann". Das heißt, mySQL erkennt automatisch, dass es sich um einen Alias handelt.

              Es ist sogar besser das AS weg zu lassen, da es zu anderen DBs konformer ist.

              Kommentar

              Lädt...
              X