Melvin Cowznofski: MySQL Datensatzzählung mit COUNT(*)

Beitrag lesen

Hallo dedlfix!

Ich habe jetzt eine weitere Tabelle erstellt und mit der selben, in der Zwischenzeit nicht veränderten php Ressource, in dem sich das Array mit den 1199 Namen befindet, die Daten zur DB gesendet.

In dieser neuen DB zählt er jetzt tatsächlich 1199 Datensätze.

Nun stellt sich die Frage, wieso das beim ersten Mal nicht geklappt hat. Es ist so, dass ich ein meinem alten, langsamen Laptop einen USB-Stick stecken habe, auf dem sich XAMPP und die Datenbank befindet. Ich dachte zuerst, vielleicht sei das System "zu langsam" und kommt beim Speichern der Datensätze nicht mit, deshalb fehlen ein paar. Aber das ist natürlich Blödsinn, weil selbst dann gäbe es ja bei den id-Nummern keine Löcher sondern sie wären von 1 weg durchgehend nummeriert.

Ich _weiss_ doch, dass ich weder in phpMyAdmin noch in meiner php Ressource _je_ ein DELETE drinnen hatte heute. Also entweder gab es in den 14 Fällen nie ein INSERT - dann stellt sich die Frage, wieso die id-Nummern nicht durchgehend sind. Oder es gab ein INSERT, dann stellt sich die Frage, wieso 14 von 1099 Datensätzen plötzlich verschwinden.

Das ist im nachhinein nicht mehr feststellbar. Vielleicht hast du damals Insert-Fehler übersehen.

Das habe ich alles innerhalb der letzten Stunde gemacht. Ich werde es wohl trotzdem nie erfahren, was da passiert ist. =(

Da nimmt man aber nicht eine gleiche zweite Abfrage mit COUNT() sondern SELECT SQL_CALC_FOUND_ROWS ... in der ersten und dann eine zweite mit SELECT FOUND_ROWS();

Du hast Recht, 2 Abfragen sind umständlich. Eigentlich brauche ich ja nur die 2 Schritte umkehren. Zuerst mit _einer_ Abfrage die Daten holen, dann mit dem $anzahl = $query->rowcount() feststellen, wie viele Datensätze vorhanden sind und entsprechende Navigationslinks berechnen und setzen.

SQL_CALC_FOUND_ROWS und SELECT FOUND_ROWS() sagt mir nichts, aber das brauche ich somit ja nicht mehr. Oder ist das eine bessere Alternative?

Mit lieben Grüßen

Melvin Cowznofski

--

Melvin Cowznofski
What – me worry?