Autor | Zpráva | ||
---|---|---|---|
Jack06 Profil |
#1 · Zasláno: 7. 9. 2008, 10:40:23
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 |
#2 · Zasláno: 7. 9. 2008, 11:20:15
nacti vsechny odpovidajici obrazky do pole a pohybuj se po jeho klicich.
|
||
Jack06 Profil |
#3 · Zasláno: 7. 9. 2008, 14:14:32
„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 |
#4 · Zasláno: 7. 9. 2008, 22:23:07
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 |
#5 · Zasláno: 7. 9. 2008, 22:29:51
Já používám OFFSET
|
||
peta Profil |
#6 · Zasláno: 8. 9. 2008, 08:03:50 · Upravil/a: peta
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 |
#7 · Zasláno: 8. 9. 2008, 08:20:40
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 |
#8 · Zasláno: 8. 9. 2008, 08:30:20 · Upravil/a: peta
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 |
#9 · Zasláno: 9. 9. 2008, 18:06:38
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 * |
#10 · Zasláno: 9. 9. 2008, 20:15:10
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 |
#11 · Zasláno: 10. 9. 2008, 15:48:28 · Upravil/a: Jack06
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 |
#12 · Zasláno: 10. 9. 2008, 15:53:52
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 |
#13 · Zasláno: 10. 9. 2008, 15:58:51
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 |
||
Časová prodleva: 3 dny
|
|||
Jack06 Profil |
#14 · Zasláno: 13. 9. 2008, 09:56:42
Prosím HELP
|
||
Jack06 Profil |
#15 · Zasláno: 13. 9. 2008, 09:57:31
Prosím HELP
|
||
Kajman_ Profil * |
#16 · Zasláno: 13. 9. 2008, 10:22:10
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 |
#17 · Zasláno: 13. 9. 2008, 11:09:34
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 * |
#18 · Zasláno: 13. 9. 2008, 11:19:43
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 |
#19 · Zasláno: 13. 9. 2008, 16:25:27
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 |
#20 · Zasláno: 14. 9. 2008, 08:25:07
prosím jak udělat ještě tlačítka prvni zpět další poslední, aby to reagovalo na toto.??
|
||
Kajman_ Profil * |
#21 · Zasláno: 14. 9. 2008, 10:57:04
if (isset($odkazy['dalsi'])) echo '<a href="skript.php?id='.$odkazy['dalsi']['id'].'" rel="next">další</a>' |
||
Jack06 Profil |
#22 · Zasláno: 14. 9. 2008, 15:11:04
díky moc
|
||
Časová prodleva: 16 let
|
0