Autor | Zpráva | ||
---|---|---|---|
Rossko Profil * |
#1 · Zasláno: 13. 12. 2012, 01:23:03
Dobrý večer
Do jednej tabuľky, sa mi ukladajú naraz obrázky, vtipy aj videa (inak sa to nedá) a tým pádom 5 obrázkov po sebe nemusí mať IDčka o jedno väčšie.. potrebujem urobiť v galérii prepínač na ďalšiu a predchádzajúcu fotku a neviem prísť na to ako a prebiehať všetky záznamy kým nenájdem ten, na ktorom som a pri každom behu cyklu si pamätať predchádzajúce ID, to nie je dobré, preto mi napadlo, že by bolo jednoduché, keby obrázkom prislúchal ďalší stĺpec imgid kde by sa inkrementovalo automaticky IDčko ale jedine ak je vkladaný obrázok, do tohto stĺpca pri vložení videa by nedalo nič a do Ďalšieho obrázku by priradilo zase o jeden väčší index.. jedoducho, aby boli obrázky oIDčkované od 1 po x a vždy o jedno väčšie číslo.. je možné takýmto nejaký spôsobom inkrementovať databázu? |
||
Tori Profil |
Rossko:
Přidejte si sloupeček, kde budete rozlišovat kategorii (obrázky, videa, ...). Pak jedním dotazem najdete data týkající se aktuálního obrázku, a druhým najdete předchozí+následující záznam (budou mít stejnou kategorii). Pokud ty obrázky atd. řadíte podle ID, tak např. takhle (v proměnné $data jsou údaje o aktuálním obrázku):
$sql = " (select 'predchozi' smer, t.id from tabulka t where t.id = < " . $data['id'] . " and t.kategorie = '" . $data['kategorie'] . "' order by t.id desc limit 1 ) union (select 'dalsi' smer, t.id from tabulka t where t.id > " . $data['id'] . " and t.kategorie = '" . $data['kategorie'] . "' order by t.id limit 1 )"; Pokud to řadíte podle něčeho jiného než ID (datum přidání, abecedně, náhodně,...), upravte si dotaz z FAQ: 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 (tohle je jeho zjednodušená verze). |
||
Rossko Profil * |
#3 · Zasláno: 13. 12. 2012, 09:41:05
super, vyzerá, že toto by malo fungovať perfektne, usporiadať si to podľa času zvládnem v pohode, len ešte sa opýtam jednu vec, čo je v tom dopyte to 'predchozi' a 'dalsi' tým to potom vyvolám alebo ako? mohol by si to prosím ťa napísať aj s výpisom predchádzajúceho a nasledujúceho ID, aby som sa zorientoval?
Ďakujem veľmi pekne |
||
Kajman Profil |
#4 · Zasláno: 13. 12. 2012, 10:13:31
Dotaz může vrátit nula až dva řádky. Díky těmto hodnotám predchozi a dalsi v sloupci smer můžete rozpoznat pro který odkaz je daný řádek určen. Můžete si řádky např. dát do pole a to pak testovat.
$odkazy=array(); while($row=mysql_fetch_array(...)) { $odkazy[$row['smer']]=$row; } if(isset($odkazy['predchozi'])) { //udelam odkaz na predchozi diky $odkazy['predchozi']['id'] } |
||
Rossko Profil * |
#5 · Zasláno: 13. 12. 2012, 13:02:19
super, ďakujem, funguje :)
|
||
Časová prodleva: 11 let
|
0