2016-05-30 5 views
-1

Ich habe eine Datenbank mit automatisch inkrementierenden IDs, jeder Eintrag hat eine youtube videoID, die ein varchar ist. Wenn also die Seite geladen wird, wird der erste Eintrag (ID 1) angezeigt. Wenn Sie auf die Schaltfläche klicken, wird der nächste Eintrag (ID 2) gedruckt. Wie würde ich das tun?PHP bekomme nächste ID von MySQL

Dank

+3

Willkommen bei Stack Overflow! Bitte sehen Sie [Wie zu fragen] (http://stackoverflow.com/questions/how-to-ask) und [Die perfekte Frage] (http://codeblog.jonskeet.uk/2010/08/29/writing-the -Perfekt-Frage /). – JimL

+0

Auto-Inkrement kann nur für ein Integer-Feld verwendet werden. Es wäre eine große Hilfe, wenn Sie die Definition der fraglichen Tabelle sowie die erwartete Ausgabe und die Abfragen, die Sie bisher versucht haben, bereitstellen könnten. – gmiley

Antwort

1

Wenn also die Seite geladen wird, wird der erste Eintrag (ID 1) angezeigt. Wenn Sie auf die Schaltfläche klicken, wird der nächste Eintrag (ID 2) gedruckt. Wie würde ich das tun?

Das klingt wie Bestellung und Paging. (Auch bei einer „Seite“ Größe von nur 1) Grundsätzlich sind alle Datensätze auswählen größer als die „aktuelle“ ID, geordnet nach ID, begrenzt auf 1. So etwas wie:

SELECT * 
FROM tableName 
WHERE ID > ? 
ORDER BY ID 
LIMIT 1 

Also, wenn Sie Ihre Aufzeichnungen sind:

ID | Value 
---------- 
1 | A 
2 | B 
3 | C 
4 | D 
5 | E 

und Sie liefern 3 als „Strom-ID“ (die derzeit auf der Seite angezeigt wird, wo der „next“ Link angezeigt wird), dann würde die Abfrage zurückgeben

4 | D 

Weil 4 und 5 erfüllen Sie die WHERE Bedingung, sortieren Sie nach ID so 4 ist zuerst, und Sie begrenzen die Ergebnisse auf 1 Rekord.

0

Der PHP-Code die ID zu erhalten, die in den letzten Auto erhöht Spaltenwert eingefügt wurde, ist mysql_insert_id() oder mysql_insert_id($connection). Ich bin mir jedoch nicht sicher, warum Sie über eine Zeichenfolge schreiben, automatisch inkrementierte Spalten sind immerganze Zahlen.

+0

Es gibt auch die Methode SELECT MAX (ID) FROM table_name. – tadman

+0

Ich habe die Frage aktualisiert. Danke –

+0

@tadman: Das würde dir die * letzte * ID geben (zumindest in allen Fällen, die ich kenne), aber nicht die * nächste * ID. – David

Verwandte Themen