Autor Zpráva
yenkee
Profil *
Ahoj, mám velký problém. Fakt už nevím jak na to..

Mám v tabulce 'produkty__vlastnosti' sloupec 'poradi' dva záznamy. Jeden s hodnotou 1, druhý 2. Zkouším je mezi sebou prohodi pomocí následujících příkazů:

mysqli_query($_SESSION['mysql'],"UPDATE produkty__vlastnosti SET poradi = '0' WHERE poradi = '2'");
mysqli_query($_SESSION['mysql'],"UPDATE produkty__vlastnosti SET poradi = '2' WHERE poradi = '1'");
mysqli_query($_SESSION['mysql'],"UPDATE produkty__vlastnosti SET poradi = '1' WHERE poradi = '0'");

Vůbec to nefunguje, nevypíše se žádná chybová hláška, v DB se nic neprohodí..já fakt nevím.
Připojení je OK. Funkce mysqli_error nic nevypisuje.

PHP 5, MySQL 5
yenkee
Profil *
Dal sem poslední dva do komentáře a provedl se pouze první. A správně!
Pak sem nechal v komentáři jen ten poslední a ten druhý se provedl špatně!
Nechal sem tedy provéct pouze druhý příkaz a provedl se dobře.. chápete to??? Já NE.
Michalek
Profil
mysqli_query($_SESSION['mysql'],"UPDATE produkty__vlastnosti SET poradi = '0' WHERE poradi = '2'");

Nastavis zaznamum 0 a

mysqli_query($_SESSION['mysql'],"UPDATE produkty__vlastnosti SET poradi = '1' WHERE poradi = '0'");

tady tem samym zaznamum nastavis 1

ne?
yenkee
Profil *
Jo..to funguje.

Ale já mám jeden řádek s hodnotou 'poradi' 1 a druhý s hodnotou 2. Jak je tedy mám prohodit? Chtěl bych aby v prvním byla 2 a v druhém 1.
yenkee
Profil *
Mám takové podezření na PHP. Když totiž provedu tyto příkazy postupně v samostatném souboru, tak je vše OK. Používám ale objekty a tady tyto příkazy se spouští jako metoda objektu. Nemůže být chyba někde tady? Mám takové tušení, jako by se to provedlo dvakrát, i když to mám ve skriptu napsané pouze jednou.
MzM
Profil
no, nevím, prohazování pořadí v db tímto způsobem se mi zdá minimálně nestandardní... ale může k tomu být dobrý důvod.
řazení opačným směrem se dělá většinou tak, že se řekne order by poradi asc|desc.
případné pořadí bych řešil spíš dotazem na ID řádku ve where podmínce, než na pořadí.
Nevím, zdá se mi to divoké...
Kajman_
Profil *
Zkusil bych to možná bez obalujících apostrofů kolem čísel, pokud je ten sloupeček číslo.
Smajchl
Profil *
nediv se, nejdriv zamenis dvojku za nulu, a pak se divis ze tam ta dvojka neni?
nightfish
Profil
Smajchl
nediv se, nejdriv zamenis dvojku za nulu, a pak se divis ze tam ta dvojka neni?
zamění dvojku za nulu, pak jedničku za dvojku, a pak nulu za jedničku, to je správný postup, takže údiv je na místě... a jak se tak dívám, tak reaguješ v tématu po půl roce, takže zamykám
Toto téma je uzamčeno. Odpověď nelze zaslat.