Autor | Zpráva | ||
---|---|---|---|
kapos Profil * |
#1 · Zasláno: 13. 5. 2014, 14:28:47
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 * |
#2 · Zasláno: 13. 5. 2014, 14:30:07
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 |
#3 · Zasláno: 13. 5. 2014, 14:35:54
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 * |
#4 · Zasláno: 13. 5. 2014, 14:37:21 · Upravil/a: kapos
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 |
#5 · Zasláno: 13. 5. 2014, 14:43:09
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 * |
#6 · Zasláno: 13. 5. 2014, 14:50:41 · Upravil/a: kapos
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 * |
#8 · Zasláno: 13. 5. 2014, 15:41:05 · Upravil/a: kapos
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 |
#9 · Zasláno: 15. 5. 2014, 07:03:51
Taps:
A analogicky k tomu $nasledujici = mysql_query("SELECT * FROM zaznam WHERE id > '10' ORDER BY id ASC LIMIT 1"); |
||
Časová prodleva: 10 let
|
0