|
|
|
| форма
<form action='' method=post>
<input name=pub[] type=checkbox value='$row[id]' >
<input type=submit value='Сохранить' name=save_set_cat>
</form>
|
Код
if(isset($_POST['save_set_cat'])){
$sql_count=mysql_query("SELECT count(id) FROM `cat`");
$con=mysql_fetch_row($sql_count);
$sql=mysql_query("SELECT * FROM `cat`");
$row=mysql_fetch_array($sql);
for($i=0;$i<=$con[0];$i++) $sql=mysql_query("UPDATE `cat` set `pub`='0' where id='$i' ") or die('Ошибка'.mysql_error());
$d=count($pub);
for($i=0;$i<=$d;$i++){
if(isset($pub[$i])){
$sql=mysql_query("UPDATE `cat` set `pub`='1' where id='$pub[$i]' ") or die('Ошибка'.mysql_error());
}
}
}
|
Еси поставлена галочка добаляется 1 иначе 0. Знаю, что можно сделать по другому
Помогите упростить. | |
|
|
|
|
|
|
|
для: fiper
(19.10.2007 в 22:09)
| | непонятно , все ряды таблицы меняются за один раз ?
вместо двух циклов можно сделать тогда два запроса так
<?
$list = implode(', ', $pub);
$sql1 = "UPDATE cat
SET pub= '0'
WHERE id NOT IN(" . $list . ");";
$sql2 = "UPDATE cat
SET pub= '1'
WHERE id IN(" . $list . ");";
|
одним запросом незнаю можно-ли сделать | |
|
|
|
|
|
|
|
для: EXP
(20.10.2007 в 12:47)
| | понял как одним запросом делается
<?
$list = implode(', ', $pub);
$sql = "UPDATE cat SET pub=CASE WHEN
id IN (" . $list . ")
THEN '1'
ELSE '0'
END ;";
# или так
$sql = "UPDATE cat SET pub = IF( id IN(" . $list . "),
'1',
'0' );";
|
| |
|
|
|
|
|
|
|
для: EXP
(20.10.2007 в 14:07)
| | Спасибо! | |
|
|
|