PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [MySQL] Wie kann ich Gesamteinträge auslesen und in Variable stecken?


pHp ViRuS
15.05.2003, 21:39:57
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