Autor Zpráva
Rossko
Profil *
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
)";
Předpokládám, že aktuální obrázek hledáte podle ID, ale jestli hledáte třeba podle URL (např.pěkné URL), změňte si ten zvýrazněný sloupec.

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 *
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
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 *
super, ďakujem, funguje :)

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: