MySQL: Zeilen in einer Tabelle zählen

Dieses Thema im Forum "Datenbanksysteme für das Web" wurde erstellt von martinibook, 23.08.2006.

  1. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    MacUser seit:
    20.08.2005
    Hallo,

    Wenn ich wissen möchte, wie viele Zeilen eine Tabelle in einer MySQL Datenbank hat, dann führe ich immer "SELECT id FROM tabelle" aus, und frage die Anzahl dann mit mysql_num_rows(); ab.

    Geht das auch einfacher?

    Martin?
     
  2. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.039
    Zustimmungen:
    1.316
    MacUser seit:
    13.09.2004
    select count(id) from tabelle ;)
     
  3. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    MacUser seit:
    20.08.2005
    Und dann einfach $anzahl = mysql_query($sql); ?
     
  4. lol

    lol MacUser Mitglied

    Beiträge:
    1.469
    Zustimmungen:
    48
    MacUser seit:
    18.01.2006
    nee, trotzdem ein mysql_fetch_array machen.
    Dort findest du dann deine zahl.
    es ist so, das mysql IMMER eine tabelle zurueck gibt, egal ob daten oder nur die anzahl von spalten, oder ein simpler boolean.
     
  5. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    MacUser seit:
    20.08.2005
    Was bekomme ich denn dann?

    $array = mysql_fetch_array($ergebnis)

    $array[0] ist dann die Zeilenanzahl?
     
  6. lol

    lol MacUser Mitglied

    Beiträge:
    1.469
    Zustimmungen:
    48
    MacUser seit:
    18.01.2006
    eigentlich schon. kann es hier gerade nicht testen, sql-server steht in der firma. sonst teste mal, ob es nicht direkt im fetcharray steckt, also:

    echo mysql_fetch_array($ergebnis);

    -> das kann dann deine zahl sein. auf jeden fall ist es eine dieser beiden möglichkeiten
     
  7. scope

    scope MacUser Mitglied

    Beiträge:
    4.081
    Zustimmungen:
    301
    MacUser seit:
    24.01.2005
    PHP:
    $queryString "SELECT COUNT(*) AS count FROM table";
    $queryHandle mysql_query$queryString );
    $queryResult mysql_fetch_array$queryHandle );

    $count $queryResult['count'];
    PHP:
    $queryString "SELECT COUNT(*) AS count FROM table";
    $queryHandle mysql_query$queryString );
    $queryResult mysql_fetch_object$queryHandle );

    $count $queryResult->count;
     
  8. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    MacUser seit:
    20.08.2005
    Bei deinem Beispiel kann man doch auch mysql_fetch_assoc(); nehmen, weil du ein assoziatives Array verwenden, oder?
     
  9. scope

    scope MacUser Mitglied

    Beiträge:
    4.081
    Zustimmungen:
    301
    MacUser seit:
    24.01.2005
    Entweder
    PHP:
    $queryResult mysql_fetch_array$queryHandleMYSQL_ASSOC );
    oder
    PHP:
    $queryResult mysql_fetch_assoc$queryHandle );
    Beides das gleiche und ist weniger aufwendig, hast du Recht.
    (Wobei das bei einem Ergebnis dieser Größe, 1x1, nicht wirklich wichtig ist.. :D )
     
  10. martinibook

    martinibook Thread Starter MacUser Mitglied

    Beiträge:
    8.564
    Zustimmungen:
    350
    MacUser seit:
    20.08.2005
    Ich habe folgendes "Problem":

    Ich habe Personen in der Tabelle "personen" und dann die Zitate der Personen in der Tabelle "zitate". Damit ich keine redundanten Daten habe, habe ich das per Relation gemacht.

    In der Abfrage rufe ich alle Personen ab und lasse dann mysql_fetch_assoc(); durchlaufen. In dieser Schleife habe ich wieder eine Abfrage, die nach Zitaten der Person per ID sucht. Somit habe ich bei ca. 30 Personen 31 Querys. Geht das besser oder einfacher?

    Martin
     
Die Seite wird geladen...

Diese Seite empfehlen