Autor Zpráva
kapos
Profil *
Dobrý den. Lze nějak zjistit předchozí i následující id? Mám takoví dotaz:
$sql = mysql_query("SELECT * FROM zaznam WHERE id='10' ORDER BY date DESC, insert DESC");

Potřebuji zjistit jaký id je v pořadí za a před. Nějak se mi to nedaří, ale určitě to pro někoho bude hračka bijící do očí. Děkuji předem

Zkoušel jsem znamínka >< ale nedařilo se mi dojít ke správnému výsledku.
anonymníí
Profil *
kapos:
jednoduše to nejde. Pokud chceš procházet předešlý a následující záznam, ukládej si jejich pozici do vlastního sloupečku a s tím pracuj. Nebudeš mít vynechaná čísla, bude to vždy posloupná řada od 1 do X, kde X je počet všech záznamů.
Alphard
Profil
Některé časteji řešené dotazy pro MySQL - FAQ » Data pro další a předchozí záznam vůči $id, když jsou položky seřazeny podle jiného sloupečku než id
Spojovat více tabulek zřejmě nepotřebujete, takže se koukněte na princip a nekopírujte to doslova. Princip pro následující id je filtrovat s id > 10, setřídit order by id a omezit limit 1, pro předchozí podobně.
kapos
Profil *
Zkusím to nějak sesmolit, ale nevím zda se mi to povede. Včera jsem se pokoušel a jen jsem dokázal vytáhnout předchozí záznam. Další už mi díky řazení nešlo. Myslel jsem, že je na to třeba nějaký fígl, který neznám


Alphard:
Přesně takhle se mi povedlo docílit předchozího id, ale pro další což je důležitější už mi výsledek haproval diky řazení. Děkuji, se stím nějak poperu. Chtěl jsem vědět zda na to není nějaký jiný fígl
Alphard
Profil
kapos:
Vy v tom prvním dotaze (za předpokladu unikátního id) máte řazení úplně zbytečně, tam je k ničemu. Když změníte where na nerovnost, jste na správné cestě, ale zatímco pro předchozí záznam se řadí sestupně (jak to máte), pro následující je třeba řadit vzestupně (bez desc).
kapos
Profil *
Zkouším to takhle:
$predchozi = mysql_query("SELECT * FROM zaznam WHERE id > '10' ORDER BY date DESC, insert DESC LIMIT 1");

Moc mi to nevychází a já blbec jsem ten včerejší správnej vymazal. Pamatuju si, že to bylo nějak takhle a vytáhnul jsem alespoň ten předchozí


Už jsem ten předchozí získal. Mám dvě hodnoty, který se pokusím použít na zjištění té poslední pro další záznam. Děkuju moc
Taps
Profil
kapos:
předchozí
$predchozi = mysql_query("SELECT * FROM zaznam WHERE id < '10' ORDER BY id DESC LIMIT 1");
kapos
Profil *
Předchozí záznam není problém. Problém je získat následující.


Nikdo neví jak získat další id?


Dobrý, už jsem to vyřešil
MartinR
Profil
Taps:
A analogicky k tomu
$nasledujici = mysql_query("SELECT * FROM zaznam WHERE id > '10' ORDER BY id ASC LIMIT 1");

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: