PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   [MySQL] Wie kann ich Gesamteinträge auslesen und in Variable stecken? (http://www.selfphp.de/forum/showthread.php?t=4313)

pHp ViRuS 15.05.2003 21:39:57

[MySQL] Wie kann ich Gesamteinträge auslesen und in Variable stecken?
 
Hallo mal wieder.

Ich schreibe für nen Bekannten n kleines Galleryscript, was speziell auf bestimmte Wünsche und Kriterien zugeschnitten ist. Das ganze läuft mit einer MySQL Datenbank zusammen um z.B. Kommentare zu speichern und/oder veiws anzuzeigen. Nun habe ich eine Frage, da ich mit einer bestimmten Funktion nicht weiterkomm.
Jedes Bild ja ne eigene ID und ist praktisch jeweils ein Eintragin einer Tabelle. Nun würde ich da gerne die Zahl der Gesamteinträge pro Gallery (jede Gallery hat ihre eigene Tabelle in der Datenbank) auslesen, um:
1) Anzeigen zu können wieviele Bilder sich in der Gallery befinden.
2) Die Gesamtzahl (die ja letztlich der ID vom Letzten Eintrag entspricht) in eine Variable stecken und in weitere Funktionen (z.B. Blätterfunktion) zu integrieren.

Mit welchen Befehl(en) les ich die Gesamtzahl der Einträge (bzw. die ID des letzten Eintrags) aus?

Zudem würde ich gerne wissen, wie ich IDs (id = int(255), NOT NULL, auto_increment, Primärschlüssel) nachrücken lassen kann wenn ich z.B. irgendeinen Eintrag aus der Mitte heraus lösche?

Danke schonmal! :-)

Nev 16.05.2003 07:51:15

Hi php Virus

Als erstes:
Der Befehl damit du die Anzahl aller Rows in einen Table, bzw. deines SELECTS bekommst, nennt sich:
mysql_num_rows($result);

Zu deiner Blätterfunktion:
Die Eigenschaft auto_increment erhöt den Index bei jeder neuen Row.
Wenn du nun einen Datensatz aus der Mitte löscht, wird dieser nicht nachbelegt.

Auto_increment besetzt erst dann nach, wenn es einen Überlauf des Feld-Typen gibt.
zB: ID int(3)
und der nächste Index ist 1000, fängt er wieder bei 0 an.
Wobei er nur die Felder nachbesetzt die Frei sind.

Daher ist dein Denkansatz verkehrt.

Lösungsansatz:
Du brauchst ein paar Variablen im vorraus:
  • $entries_per_page
  • $page
Du ermittelst mittels mysql_num_rows die gesamten Anzahl => $entries_total
Dann ermittelst du wieviele Pages es gesamt gibt:
$pages_total = $entries_total / $entries_per_page
Falls $page nicht gesetzt ist, setzte es auf 1.

Als nächstest macht du eine Schleife und gibst $entries_per_page Mal den Row-Inhalt aus.

.....

Ich hoffe es war zumindest ein Denkansatz,
wenn nicht meld dich einfach nochmal


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:17:27 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.