Autor | Zpráva | ||
---|---|---|---|
Duum Profil * |
#1 · Zasláno: 26. 6. 2007, 00:09:15
Zdravim, chtěl bych se zeptat, jak zjistím na kterém řádku se nachází hodnota v MySQL? Mám fotogalerii, která se stránkuje v malých náhledech. Když kliknu na náhled zobrazí se nová stránka se většenou fotkou a dalším stránkováním, tedy kliknu na fotku zobrazí se mi veliká a nad ní jsou šipky pro pohyb v plné velikosti. Vše mi funguje pře hodnotu ID při každém přidání se mi do ID přičte 1. A když vyvolám plnou velikost přes limit se mi zobrazí pomocí ID ta fotka. Ale když nějaký zýznam smažu, tak se mi zbytek posune nahoru třeba takto: Jsou záznami s ID 1, 2, 3, 4, 5, 6, 7, 8.... Když smažuzáznam 6 tak půjdou po sobě takto: 1, 2, 3, 4, 5, 7, 8... Tudíš když vyolám fotku s id 7 zobrazí se mi fotka s ID 8 protože je na jejím místě. Vše by se vyřešilo, kdyby se do odkazu s limitem místo hodnoty ID ukládala pozice v tabulce. Tedy při každém volání by se tam uvedl řádek, na kterém se záznam nachází a bylo by po problému. Ale problém je v tom, jak zjistím pozici v databázi? Pokud to někdo víte, zkuste prosím pomoci zatím ahoj
|
||
Kajman_ Profil * |
#2 · Zasláno: 26. 6. 2007, 08:57:55
Není lepší volat fotky s id z databáze? Jinak se Vám nezachovají externí odkazy při tom mazání.
Jinak tady http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=3 7836 je ukázka číslování řádků (i hledání dalšího a předchozího záznamu pokud použijete id z db a chcete přeskočit díry). |
||
Duum Profil * |
#3 · Zasláno: 26. 6. 2007, 13:21:15
Tento příklad moc nechápu, já s MySQL teprv začínam, sice to možná chápu, ale možná by neuškodilo, kdyby jste se mi o prosím někdo zkusil vysvětlit.
|
||
Duum Profil * |
#4 · Zasláno: 27. 6. 2007, 21:16:35
Prosím může mi to někdo trochu vysvěltilt?
|
||
Kajman_ Profil * |
#5 · Zasláno: 27. 6. 2007, 22:51:09
V MySQL číslo řádku samo o sobě neexistuje.
Můžete dát order by id limit 6, 1 pokud chcete sedmou fotku podle id. |
||
Duum Profil * |
#6 · Zasláno: 27. 6. 2007, 23:35:38
Ano, já kliknu na nějakou fotku, která si v url nese proměnou která uvádí celkový počet fotek a druhá, která uvádí ID tím se nastaví (limit celkový počet, (id-1) řazeno pospátku)... Vše funguje jak má, ale když smažu nějaké foto, tak fotka sedmá v pořadí třeba ponese id 9 a při stanovení limitu to tedy dělá neplechu. Ještě mě tedy napadlo, že by při každém mazání se aktualizovali hodnoty id aby byly posloupně za sebou.
|
||
Kajman_ Profil * |
Tak to nepočítejte pozpátku a jen to obráceně seřaďte. Žádný celkový počet nepotřebujete.
A pokud máte ID a ne číslo v pořadí, tak stačí select * from fotky where id=$ID Ale možná by neuškodilo, kdyby jste si o mysql něco přečetl. http://www.linuxsoft.cz/mysql/ |
||
Duum Profil * |
#8 · Zasláno: 28. 6. 2007, 11:49:54
Já se omlouvám, už jsem byl trochu mimo... :-D Ten limit je dělán tak to:
limit ".($id-1).", 1 Hodnota id se přenese pomocí proměnné z url a stanoví se limit. Pozpátku to mám řazené úplně celé, jako celý skript, protože když někdo klikne na nejnovější foto, tak aby se zobrazilo na začátku a když klikne na šipku do leva abyse posunul zpátky a né do předu. Ale to už je jen otázka projíždění fotek ve zvětšeném tvaru. To s hodnotou id nemá nic společného. |
||
Kajman_ Profil * |
#9 · Zasláno: 28. 6. 2007, 13:13:26
Odečíst a přičíst jedničku v php snad umíte, ne? Takže pokud berete fotku tím limitem, nic jiného přece nepotřebujete.
|
||
Duum Profil * |
#10 · Zasláno: 28. 6. 2007, 13:47:22
Ano... Ale každá fotka si nese svoje unikátní id, nahraje se nové foto vezmese se největší id přičte se jedna a takhle pořád do kola. Jenže když nějakou fotku smažu, tak smažu i jedno id a tedy hodnoty id nepůjdou za sebou. Když nese odkaz proměnou id pro sestavení limitu, tak fotka pro limit může nést jiné id v důsldku toho že něco před ní bylo smazáno a ona je o záznam výš, tedy pro sestavení limitu uvádí své id které ale neodpovídá v limitu. Zobrazí se jiná fotka...
|
||
Duum Profil * |
#11 · Zasláno: 28. 6. 2007, 13:49:20
Já už nevím jak to vysvětlit.... :-D Jo počkejte, já mam tuto galerii na jednich stránkách, www.minibike.hustej.net/vase_foto.php Zde si to můžete prohlídnout v akci. Akorát že v tomto nemažu.
|
||
Kajman_ Profil * |
#12 · Zasláno: 28. 6. 2007, 15:13:16
Pokud používáte teď proměnou id k vyhledání fotky tím limitem, tak nehledáte pravé id, ale pořadí. Proto stačí +1 -1.
Pokud chcete používat proměnou id jako pravé id, dejte where id=$id další je select id from fotky where id>$id order by id limit 1 předchozí je select id from fotky where id<$id order by id desc limit 1 |
||
Časová prodleva: 17 let
|
0