Autor Zpráva
Jack06
Profil
Jak udělat navigaci:

Nejlehčí přiklad. Mám obrázky v mysql. podle id 1 , 2 , 3 , 4 , 5 , 7 , 11
řada není úplná počítám s tím že něco smažu.

Nyní potřebuju tlačitka : "První" "zpět" "další" "Poslední"

Normálně vím, jak se dostat na další id přičtu funkcí +1, ale jak aby to vytáhlo další z mysql, protože 5+1=6 a ten obrázek tam není takže by to bylo špatné. A potom nevím jak dostanu poslední záznam z mysql a první. Děkuji.
ninja
Profil
nacti vsechny odpovidajici obrazky do pole a pohybuj se po jeho klicich.
Jack06
Profil
nacti vsechny odpovidajici obrazky do pole a pohybuj se po jeho klicich.
myslíš array?? jako v javascriptu?? Já bych to chtěl přez phpko čistě. Nevím jak to načíst do polí a pohybovat se v nich.
pls poraď detajlněji. nějakej příklad. thx
Bill
Profil
v php a myslq bych to řešil takto:


$cur=1; // ID aktualniho

doatz dalsi: SELECT * FROM tab WHERE id>1 ORDER BY id, LIMIT 1;
dotaz prvni: SELECT * FROM tab ORDER BY id ASC, LIMIT 1;
dotaz posledni: SELECT * FROM tab ORDER BY id DESC, LIMIT 1;
dotaz predchozi: SELECT * FROM tab WHERE id<1 ORDER BY id, LIMIT 1;
Medvídek
Profil
Já používám OFFSET
peta
Profil
Jack06
viz Bill 4 dotazy bez PHP

nebo ninja 1 dotaz + PHP
SELECT id FROM tab; -> $x = array(13,65,1,2,5,7,9)
aktualni pozice v poli 4, $x[4] = 5
pozice+1 $x[5] =7
pozice-1 $x[3] =1
pozice=0 $x[0] =13
pozice=n $x[count($x)-1] = 9

vetsina ostatnich lidi to resi pres listovani X zaznamu
pozice = 5
pocet = SELECT COUNT(id) FROM tab
aktualni = SELECT * FROM tab LIMIT pozice,1
Tomasds
Profil
peta
Mohl bys vysvětlit toto?

aktualni pozice v poli 4, $x[4] = 5
pozice+1 $x[5] =7
pozice-1 $x[3] =1
pozice=0 $x[0] =13
pozice=n $x[count($x)-1] = 9


Kromě toho.. ještě žes napsal viz Bill a ninja. Kdybys to nenapsal, já myslím že by si jejich příspěvků nikdo nevšiml, tyjo!
peta
Profil
Tomasds
SELECT id FROM tab; -> $x = array(13,65,1,2,5,7,9)
aktualni pozice v poli 4
// prelozeno pro tomase pozice=4
// tomu odpovida $x[pozice] cili $x[4] = 5 , coz je ID aktualniho obrazku vybrane z pole vsech ID
// a tohle uz das dohromady sam
pozice+1 $x[5] =7
pozice-1 $x[3] =1
pozice=0 $x[0] =13
pozice=n $x[count($x)-1] = 9

to, ze jsem zminil ty 2 jmena bylo spis v souvislosti s otazkou 'myslíš array?? jako v javascriptu??'. Predpokladam, ze mu nedoslo, ze v PHP nebo SQL muze byt neco jako array take.
Jack06
Profil
a není ten array omezen zadanými čísli? když nahraju milion obrázků.. čistě teoreticky je to nadsázka.. může si array vybírat automaticky ve sledu za sebou.?? anich žych mu ručně zadal další číslo?
Kajman_
Profil *
Jack06
a není ten array omezen zadanými čísli?
Proto je lepší Billova verze. Pomocí union to klidně dáte i do jednoho dotazu a máte rovnou i název obrázku atp.
Jack06
Profil
hmm kurňa zkoušel jsem to nacpat do funkce, ale nějako mi to nefajčí.. jak mám dát dokupy tlačítka na stránce a vybírání z mysql

hlásí mi to že mysql_fatch_array is supplited

for:

$cur=1; // ID aktualniho

doatz dalsi: SELECT * FROM tab WHERE id>1 ORDER BY id, LIMIT 1;
dotaz prvni: SELECT * FROM tab ORDER BY id ASC, LIMIT 1;
dotaz posledni: SELECT * FROM tab ORDER BY id DESC, LIMIT 1;
dotaz predchozi: SELECT * FROM tab WHERE id<1 ORDER BY id, LIMIT 1;

mám script:

mysql_query("SET CHARACTER SET utf8");
    $vysledek=mysql_query("select * from fotogalerie where id=".$_GET['zobraz']."");
    while ($zaznam=MySQL_Fetch_Array($vysledek))
echo "
<div class='img2'>
<center><img src='".$zaznam["n_odkaz"]."'></center>
</div>		
";


Asi nejjednodušší by bylo odkazem se odvolat na funkci s automatickým přesměrováním dalšího vytaženého id, ale nejde mi to. Prosím paraďte ještě jak to zakomponovat, aby to fungovalo

RE: Kajman_

Asi by to řešilo co jsi napsal, nejsem si jist jestli to je to co myslím, můžeš to ukázat prosím v příkladu.. Tabulku ze které vybírám id máte v kódu co jsem ukázal.
nightfish
Profil
Jack06
hlásí mi to že mysql_fatch_array is supplited
buď neumíš číst nebo psát, což je špatné, protože pro programování je potřeba obojí
nicméně vzdáleně mi to připomíná chybovou hlášku, která je popsána v databázovém FAQ
Jack06
Profil
OK jiným způsobem neopisoval jsem to doslova. prostě pouívám argument při výběru z mysql vícekrát..

tento: MySQL_Fetch_Array není ta hláška napsaná přesně

Doslovně:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\VertrigoServ\www\GD\nastaveni.php on line 20
Jack06
Profil
Prosím HELP
Jack06
Profil
Prosím HELP
Kajman_
Profil *
Můžete zkusit něco jako

$res=mysql_query($q="(SELECT 'dalsi' smer, f.* FROM fotogalerie f WHERE id>'$_GET[zobraz]' ORDER BY id LIMIT 1)
UNION
(SELECT 'prvni' smer, f.* FROM fotogalerie f ORDER BY id ASC LIMIT 1)
UNION
(SELECT 'posledni' smer, f.* FROM fotogalerie f ORDER BY id DESC LIMIT 1)
UNION
(SELECT 'predchozi' smer, f.* FROM fotogalerie f WHERE id<'$_GET[zobraz]' ORDER BY id DESC LIMIT 1) ") or die("Došlo k chybě v dotazu: ".$q."<br>".mysql_error());
$odkazy=array();
while ($row=mysql_fetch_array) $odkazy[$row['smer']]=$row;
print_r($odkazy);
Jack06
Profil
Fatal error: Maximum execution time of 30 seconds exceeded in D:\VertrigoServ\www\GD\obr.php on line 11

s tímto nějako nemám zkušenosti, co dělám špatně??
Kajman_
Profil *
Jack06
co dělám špatně?
Nebyl tam parametr funkce, tak se to cyklilo, pardon. Zkuste to se změnou.

$res=mysql_query($q="(SELECT 'dalsi' smer, f.* FROM fotogalerie f WHERE id>'$_GET[zobraz]' ORDER BY id LIMIT 1)
UNION
(SELECT 'prvni' smer, f.* FROM fotogalerie f ORDER BY id ASC LIMIT 1)
UNION
(SELECT 'posledni' smer, f.* FROM fotogalerie f ORDER BY id DESC LIMIT 1)
UNION
(SELECT 'predchozi' smer, f.* FROM fotogalerie f WHERE id<'$_GET[zobraz]' ORDER BY id DESC LIMIT 1) ") or die("Došlo k chybě v dotazu: ".$q."<br>".mysql_error());
$odkazy=array();
while ($row=mysql_fetch_array($res)) $odkazy[$row['smer']]=$row;
print_r($odkazy);
Jack06
Profil
Jemine ono to fakčí, vypíše mi to celou obrazovku věcí(informací)o souborech, ale jak to spojit s funkcí tlačítek??
Jack06
Profil
prosím jak udělat ještě tlačítka prvni zpět další poslední, aby to reagovalo na toto.??
Kajman_
Profil *
if (isset($odkazy['dalsi'])) echo '<a href="skript.php?id='.$odkazy['dalsi']['id'].'" rel="next">další</a>'
Jack06
Profil
díky moc

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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