[PHP]mit while schleife zählen?

  • Guten moegen,


    Ich möchte etwas aus einer Datenbank auslessen und überprüfen ob es auf 1 ist wenn es auf 1 ist soll gezählt werden bei wievielen Usern es auf 1 steht und dann soll die zahl ausgegeben werden.



    ich bitt eum hilfe.


    mfg. Fabi.StaR

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • Da brauchst du doch keine While-Schleife für:


    PHP
    $query = mysql_query("SELECT * FROM tabelle WHERE spalte = '1'");
    $count = mysql_num_rows($query);


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Da reicht auch ein COUNT(*) - so holst du dir nicht alle Zeilen, sondern einfach nur die Anzahl der Zeilen, die dem WHERE entsprechen:

    PHP
    $query = mysql_query("SELECT COUNT(*) AS total FROM tabelle WHERE spalte = '1'");
    $data = mysql_fetch_assoc($query);
    $count = $data['total'];
  • Da reicht auch ein COUNT(*) - so holst du dir nicht alle Zeilen, sondern einfach nur die Anzahl der Zeilen, die dem WHERE entsprechen:

    PHP
    $query = mysql_query("SELECT COUNT(*) AS total FROM tabelle WHERE spalte = '1'");
    $data = mysql_fetch_assoc($query);
    $count = $data['total'];


    Die Prozedur von mySQL ist die Gleiche, nur dass du das Ergebnis noch (unnötigerweise) in einem Array verarbeitest. Wenn es rein um die informative Zahl geht, ist es keine sinnvolle Lösung.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Was redest du da für einen Unfug? mySQL zählt SELBER und speichert das Ergebnis in mysql_num_rows oO


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Ja, aber wie du sicher weißt, muss MySQL für ein mysql_num_rows ein result set anlegen und schiebt schon allein wegen der mysql_query alle Datensätze in den PHP-Prozess, bei einem COUNT() hingegen erfolgt das Zählen über Indizes und ist deshalb um einiges schneller.


    Edit: ...und frisst noch dazu weniger Speicher :rolleyes:


    Edit 2:

    Einmal editiert, zuletzt von rinukkusu () aus folgendem Grund: Verbessert