Autor | Zpráva | ||
---|---|---|---|
HGD Profil |
#1 · Zasláno: 6. 4. 2008, 13:19:31
newim kde bych začal. Mam tabulku, vypsaný jednotlivé řádky a u každého checkbox. Když to odešlu, tak se to v jednom souboru přepíše z POST do GET a přesměruje na soubor kde je kód:
elseif((strcmp($_GET['del'],'category')==0)and(!empty($_GET['id']))){ $polozky=explode(":","".$_GET['id']."");// rozdělení jednotlivých položek for($i=0;$i<count($polozky);$i++){ $data=explode("_","".$polozky[$i]."");// rozdělení na: Id_Apply_Poradi if(mysql_query("DELETE FROM category WHERE id='$data[0]'")){ mysql_query("UPDATE category SET poradi=poradi-1 WHERE apply='$data[1]' AND poradi>'$data[2]'"); } } } Všechno funguje zprávně, když mažu jeden nebo 5 položek najednou, problém je v tom UPDATE, kde chci posunout ty položky, aby byly hezky zasebou, ale když mažu více položek, tak se to posune o 1místo méně. V případě mazání 1 položky funguje vše OK. Doufam že se v tom nějak vyznáte, kdyžtak upřesnim |
||
Časová prodleva: 4 dny
|
|||
HGD Profil |
#2 · Zasláno: 10. 4. 2008, 20:53:34
nevědwli byste někdo proč se to pořadí nemění v cyklu ?
|
||
obin Profil * |
#3 · Zasláno: 10. 4. 2008, 21:24:15
Tak si to po sobě přečti - poradi = poradí-1...
|
||
ninja Profil |
#4 · Zasláno: 10. 4. 2008, 23:20:05
HGD: Nedelas to dobre. Nejprve na jeden dotaz smaz vsechny radky co chces a pak si to opet jednim dotazem poskladej podle potreby.
|
||
HGD Profil |
#5 · Zasláno: 11. 4. 2008, 22:38:15
a jak mam napsat DB dotaz na mázíní XX položek? já to nikdy takle nedělal
|
||
Alphard Profil |
#6 · Zasláno: 11. 4. 2008, 22:43:57
nebylo by lepší vykašlat se na ukládní pořadí a vytvořit ho až při výpisu?
|
||
HGD Profil |
#7 · Zasláno: 11. 4. 2008, 22:47:54
jak mam tvořit pořadí při výpisu ?
|
||
Alphard Profil |
#8 · Zasláno: 11. 4. 2008, 23:01:11
buď přímo v SQL, viz FAQ nebo při vypisování v cyklu jednoduše echo $poradi++;
|
||
ninja Profil |
#9 · Zasláno: 11. 4. 2008, 23:59:12
HGD:
a jak mam napsat DB dotaz na mázíní XX položek? Nejdrive si IDcka ktere chces smazat nahazet do pole a pak: mysql_query ('DELETE FROM category WHERE id IN ("' . implode ('","', $pole_s_idcky) . '";'); |
||
HGD Profil |
#10 · Zasláno: 12. 4. 2008, 11:02:24 · Upravil/a: HGD
všechno zbytečně složitý pánové, sem to vymyslel O:-)
Byla tam chyba v tom, že sem měnil "poradí-1", jenomže před tim když se vymazalo 2 a víc položek, tak už tam musí bejt jiný číslo než "1" if((strcmp($_GET['del'],'category')==0)and(!empty($_GET['id']))){ $polozky=explode(":","".$_GET['id']."");// rozdělení jednotlivých položek for($i=0;$i<count($polozky);$i++){ $data=explode("_","".$polozky[$i]."");// rozdělení na: Id_Apply_Poradi if(mysql_query("DELETE FROM category WHERE id='$data[0]'")){ mysql_query("UPDATE category SET poradi=poradi-".($i+1)." WHERE apply='$data[1]' AND poradi>'$data[2]'"); } } header("location: ./index.php?admin=menu&show=category&dellete=ok"); } |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0