Autor Zpráva
HGD
Profil
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
HGD
Profil
nevědwli byste někdo proč se to pořadí nemění v cyklu ?
obin
Profil *
Tak si to po sobě přečti - poradi = poradí-1...
ninja
Profil
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
a jak mam napsat DB dotaz na mázíní XX položek? já to nikdy takle nedělal
Alphard
Profil
nebylo by lepší vykašlat se na ukládní pořadí a vytvořit ho až při výpisu?
HGD
Profil
jak mam tvořit pořadí při výpisu ?
Alphard
Profil
buď přímo v SQL, viz FAQ nebo při vypisování v cyklu jednoduše echo $poradi++;
ninja
Profil
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
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");
}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0