Zadejte hledaný výraz...

MySQL – o jedno vyssie/nizsie

monty
verified
rating uzivatele
8. 11. 2007 09:14:33
Mam databazu users_fotky(id, poradie, name) a potom mam vypisane dotky podla poradia, a u kazdej fotky mam tklacitko ze vyssie, ked kliknem napr. na 5.fotku, tak bude 4. a ta co bola predtym 4 bude piata.
Na to je dotaz:
$result = $conn -> query("UPDATE users_fotky f, users_fotky f2 SET f.poradie = f.poradie-1, f2.poradie = f.poradie+1
WHERE f2.poradie+1 = f.poradie and f.id='".$get_id_foto."' ") or die(mysqli_error());
Lenze to dobre nefunguje a neviem prist preco, priklad:
Mam:
ID PORADIE
58 1
57 2
54 3
55 4
56 5
a teraz kliknem na fotku s ID= 56
a nastane:
58 1
57 2
54 3
55 5
56 4
JE TO OK!
---------
---------
pokracujeme a vyzera ze to ide vsetko ok, lenze som narazil napriklad:
58 1
57 3
54 5
55 4
56 2
a klikli sme na fotku s ID= 55 (momentaklne 4) a co sa nestane stane sa toto:
58 1
57 4
54 5
55 3
56 4
Videte tie 2 stvorky? preco to robi?
Ako by sa to malo osetrit?
8. 11. 2007 09:14:33
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27040
//OT: Nabudúce, keď tu budeš prispievať, si to po sebe aspom prečítaj, oprav chyby a trochu viac sa potráp s nadpisom vlákna. ...MySQL o jedno vyssie/nizsie... :D
8. 11. 2007 11:50:17
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27039
monty
verified
rating uzivatele
8. 11. 2007 12:09:51
a poradis mi?
8. 11. 2007 12:09:51
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27038
Michal Řehák
verified
rating uzivatele
(4 hodnocení)
8. 11. 2007 14:33:30
f.id='".$get_id_foto."'
pokud id neni retezec, nedavej ho do tech apostrofu ... takze spravne by to melo byt takhle: f.id=".$get_id_foto." ... mohlo by to byt tim ... ale buhvi v cem je zakopanej pes ... otevri si nejakou mysql prirucku a pekne postupne to zkousej krok po kroku, sleduj co se deje a jakoukoliv nesrovnalost oprav ;)
8. 11. 2007 14:33:30
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27037
monty
verified
rating uzivatele
8. 11. 2007 15:01:48
Hentym to urcite nebude, preotze pri istom pripade to ide a niekedy nie.
Ja som uz zafaly, uz cakam len na nejakeho zazracneho cloveka, ktory mi pomoze.
Ono ked to dam takto
$akt_poradie = $conn -> query("SELECT poradie FROM users_fotky WHERE id='".$get_id_foto."' ") or die(mysqli_error());
$p = $akt_poradie -> fetch_assoc();
$conn -> query("UPDATE users_fotky SET poradie = poradie-1 WHERE id = '".$get_id_foto."' and poradie != 1 ") or die(mysqli_error());
$conn -> query("UPDATE users_fotky SET poradie = poradie+1 WHERE poradie = ".($p - 1)." and id != '".$get_id_foto."' ") or die(mysqli_error());
Tak takto to ide spravne, len ja to chcem dat do jedneho dotazu,
co mam robit?
8. 11. 2007 15:01:48
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27036
Strzibny
verified
rating uzivatele
(25 hodnocení)
8. 11. 2007 22:53:20
Napsal monty;19353
Tak takto to ide spravne, len ja to chcem dat do jedneho dotazu,
co mam robit?
Buď to chceš co nejlépe - najmeš profesionála, pokud ne - uděláš si to sám, ale počítáš s tím, že ne všechno bude tak elegantní (pomineme teď pseudoprofesionály, dobře?).
Ne vážně, předpokládám, že cílová stránka zase tak velký traffic nemá, tak se tím netrap. Co by pak měli říkat Railisté? :-).
8. 11. 2007 22:53:20
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27035
monty
verified
rating uzivatele
9. 11. 2007 23:50:08
Dakujem za tvoj neopodostatneny prispevok!
9. 11. 2007 23:50:08
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27034
Strzibny
verified
rating uzivatele
(25 hodnocení)
10. 11. 2007 11:37:30
Napsal monty;19511
Dakujem za tvoj neopodostatneny prispevok!
Nemáš zač, ale příjít si na to mohl i sám :).
10. 11. 2007 11:37:30
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27033
Zdeněk Topič
verified
rating uzivatele
(2 hodnocení)
10. 11. 2007 11:51:33
udělal bych to pomocí dvou sql dotazů ..
10. 11. 2007 11:51:33
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27032
Mirun
verified
rating uzivatele
(13 hodnocení)
13. 11. 2007 22:18:33
provádíš update dvou tabulek, které jsou ve skutečnosti jedna a používáš pro stanovení kurzoru mezivýsledek z poddotazu, který se ale odvolává na výsledek operace nad tabulkou první.
mysql zakazuje provádět update a zároveň se do aktualizované tabulky dívat poddotazem, pouze to v této konstrukci nepozná a nevyhodí chybu ale příkaz provede a udělá udělá mish-mash :).
UPDATE t1 SET column2 = (SELECT MAX(column1) FROM t1);
You can use a subquery for assignment within an UPDATE statement because subqueries are legal in UPDATE and DELETE statements as well as in SELECT statements. However, you cannot use the same table (in this case, table t1) for both the subquery's FROM clause and the update target.
rozděl to do dvou :)
13. 11. 2007 22:18:33
https://webtrh.cz/diskuse/mysql-o-jedno-vyssie-nizsie#reply27031
Pro odpověď se přihlašte.
Přihlásit