Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: изменение по передоваемых checkbox

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
xhugo
Отправлено: 24 Апреля, 2011 - 13:55:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




код.
PHP:
скопировать код в буфер обмена
  1. <?
  2. include ('config.php');
  3.   mysql_connect($sqlhost, $sqluser, $sqlpass);
  4.   mysql_query("SET NAMES `CP1251`") or die (mysql_error());
  5.   mysql_select_db($sqldb);
  6.  
  7. echo '<form action="" method="post">';
  8. $result = mysql_query("SELECT * FROM bot");
  9. while ($row = mysql_fetch_array($result))
  10.  {
  11.     if($row['ok']=='1')
  12.        {
  13.         echo '<input type="checkbox" name="cd[]" value="'.$row['id'].'" checked>'.$row['name'].'<br>';
  14.        }
  15.        else
  16.        {
  17.        echo '<input type="checkbox" name="cd[]" value="'.$row['id'].'">'.$row['name'].'<br>';
  18.        }
  19.  }
  20. echo '<button name="ok">ok</button></form';
  21.  
  22. if(isset($_POST['ok']))
  23. {
  24. foreach($_POST['cd'] as $s)
  25. {
  26. $s=intval($s);
  27. mysql_query("UPDATE `bot` SET `ok` = '1' WHERE `id` =$s"):
  28. }
  29. }
  30. ?>

получается те чекбоксы которые передались, у них идет запрос SET `ok` = '1'
,
нужно , у тех чекбоксов которые НЕ передались в $_POST у них шел запрос уже SET `ok` = '0'
как можно реализовать?
 
 Top
vsll
Отправлено: 24 Апреля, 2011 - 14:11:28
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['ok'])) {
  2.         $bot_ids = "";
  3.         if (isset($_POST['cd']) && is_array($_POST['cd'])) {
  4.                 foreach ($_POST['cd'] as $thisnum) {
  5.                         if (isnum($thisnum)) { $bot_ids .= ($bot_ids ? "," : "").$thisnum; }
  6.                 }


PHP:
скопировать код в буфер обмена
  1. mysql_query("UPDATE `bot` SET `ok` = '1' WHERE bot_id IN (".$bot_ids.")");
 
 Top
xhugo
Отправлено: 24 Апреля, 2011 - 14:25:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




нужно те которые передались SET ok=1
, а те которые не передались SET ok=0

и ваш код не работает.
нужно без левых функций если можно. ( isnum!)
 
 Top
vsll
Отправлено: 24 Апреля, 2011 - 14:38:19
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




извините, что не могу переписать за вас полностью ваш код, сия услуга только платная, но к пердыдущему добавьте ещё
PHP:
скопировать код в буфер обмена
  1.  
  2. } else {
  3. mysql_query("UPDATE `bot` SET `ok` = '0' ");
 
 Top
xhugo
Отправлено: 24 Апреля, 2011 - 18:32:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




смешно, если код вообще не работает ваш.
даже вы написали функцию isnum который нет.
я должен гадать?

и
там нужно еще сгобок две

собственно прошу нормального ответа на вопрос

(Отредактировано автором: 24 Апреля, 2011 - 18:33:08)

 
 Top
EuGen Администратор
Отправлено: 24 Апреля, 2011 - 18:40:20
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Во-первых, Ваша тема - в разделе "Программирование на PHP". Этот раздел не предполагает, что за Вас будут писать код. Единственный раздел форума, где на это можно надеяться - "Напишите за меня, пожалуйста".
Во-вторых - я сказал "можно надеяться". Здесь никто никому ничего не должен, так что прошу, не стройте Ваши комментарии так, как будто Вам должны дать ответ только потому, что Вы его требуете.
В-третьих, по теме:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['ok']))
  3. {
  4.    $rgCond=$_POST['cd'];
  5.    $rgCond[]=0;
  6.    mysql_query("UPDATE `bot` SET `ok` = '1' WHERE `id` IN (".join(',',$rgCond).")"):
  7.    mysql_query("UPDATE `bot` SET `ok` = '0' WHERE `id` NOT IN (".join(',',$rgCond).")"):
  8. }
  9.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
vsll
Отправлено: 25 Апреля, 2011 - 08:47:40
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


Помог: 10 раз(а)




xhugo пишет:
я должен гадать?
зачем гадать? а голова на что? само название isnum - любая ваша фильтр-функция
смешно не это, смешно вот это:
Цитата:
нужно те которые передались SET ok=1
, а те которые не передались SET ok=0

у вас с логикой как вообще, может программирование это не для вас?
 
 Top
SAD
Отправлено: 25 Апреля, 2011 - 10:57:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)





В последнее время только и слышно дай, дай, исправь и т.д. Нужно что-то с такими пользователями делать!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB