Autor Zpráva
obin
Profil *
Prosím vás zkušenější programátory o pomoc. Dělám do fotogalerie klasické šipky - další fotka, předcházející fotka, nazačátek, nakonec.

Může se spolehnout na to, že tato konstrukce

mysql_query ("SELECT id FROM foto WHERE id>'$vybranaid' ORDER BY ID");

vybere opravdu následující fotku, když v proměnné $vybranaid je uloženo ID právě zobrazené fotky?
Nebo existuje nějaká funkce pro určení následníka?
Alphard
Profil
jestli jdou v řadě spolu s id, tak ano, ještě se asi bude hodit limit 1
Michal Šobr
Profil
tady bych se připojil k dotazu jak zjistíš jaký id má poslední fotka???
Alphard
Profil
Michal Šobr
select max(id) from tabulka
obin
Profil *
No, já prozatím naplnil pole a zjišťoval první a poslední prvek. Ale právě proto se ptaám. Dobrá, vyzkouším to takhle. 3lo mi jen o to, že počítače se chovají nepředvídatelně a já se bál, aby vybral opravdu následníka
nightfish
Profil
3lo mi jen o to, že počítače se chovají nepředvídatelně
nemáš pravdu, počítače jsou deterministické (nedeterminismus je způsobený poruchou) - resp. provádění stejného kódu za stejných podmínek vždy vyhodí stejný, předvídatelný výsledek

jinak se můžeš podívat do databázového FAQ, tam jsou dotazy pro další/předchozí položku v případě, že položky nejsou v pořadí podle "id"
Alphard
Profil
3lo mi jen o to, že počítače se chovají nepředvídatelně
ne ne, jenom programátoři, říká se tomu logické chyby
obin
Profil *
No to je jasné, počítače se chovají nepředvídatelně jen proto, že ač vám kód i prostředí připadá stejné, opomněli nějakou drobnou změnu. Nu což, příklad za všechny. Kamarád dělal program v C++. Jak je jeho zvykem, nejdřív ho celý naprogramoval a až pak odstraňoval chyby. Po zkompilování mu to vyhodilo 3 stránky chyb. Tak je postupně všechny odstranil, ale z kódu udělal docela paskvil a program stejně nejel. Po dni práce a lámání si hlavy přišel jiný kamarád a zjistil, že to kompiluje kompilátorem pro C a ne pro C++. Kdo někdy programoval, ví o čem mluvím.
obin
Profil *
Potřeboval bych ještě poradit. Nejsem v mysql ještě zběhlý a potřebuju příkaz, který:

vybere záznam z tabulky foto kde galerie=$idgalerie a zároveň ID tohoto záznamu je menší než $idvybrana

zkoušel jsem

mysql_query ("
SELECT id
FROM foto
WHERE galerie='$idgalerie'
HAVING id<'$idvybrana'
");

ale tenhle příkaz není správně.
Prosím zkušenější mysqlkáře o pomoc
obin
Profil *
zkusil jsem ještě toto
$dotaz = mysql_query ("
SELECT id
FROM (select * from foto WHERE galerie='".$_GET['str']."' order by id)
WHERE id<'".$_GET['foto']."' order by id
");

ale taky bez úspěchu.

Oba pokusy hlásí

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\Prog\web\www\ZS HRADEC\fotogalerie\zobraz.php on line 26

Znamená to, že funkce mysql_fetch_array nedostala data, ze kterých je schopna pole vytvořit. Ale já nevím, co jí teda jinýho předložit
Kajman_
Profil *
$dotaz = mysql_query ($q="SELECT id from foto WHERE galerie='$_GET[str]' and id<'$_GET[foto]' order by id desc") or die ($q." -- ".mysql_error());

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: