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 :: массив

 PHP.SU

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


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

> Без описания
PATCH
Отправлено: 23 Июня, 2011 - 17:29:15
Post Id



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


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


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




вечно у меня проблема с массивами)

CODE (htmlphp):
скопировать код в буфер обмена
  1.         echo ("<form action='delete_group.php' method='post'>");
  2.        
  3.         do{print ("<div><input name='id_party' type='hidden' value='".$group_row3['id_party']."'><input name='party' type='checkbox' >".$group_row3['name_party']."</div>");}
  4.        
  5.         while ($group_row3 = mysql_fetch_array($group_res3));
  6.        
  7.         echo ("<input name='delete_sub_party' type='submit' value='Удалить'></form>");
  8.        
  9.         if(isset($_POST['delete_sub_party']))
  10.         {
  11.  
  12.  
  13.                
  14.                 if (preg_match('/^[0-9]{1,1000}$/i',$_POST[id_party])) {} else {exit("<p>Попытка взлома</p>");}
  15.                 if(empty($_POST['id_party']))
  16.                 {exit("<p>Попытка взлома</p>");}
  17.  
  18.                 $arr = array('party');
  19.                 $checked = array();
  20.                 foreach($arr as $v)
  21.                 {
  22.                         if(isset($_POST[$v]))
  23.                         {
  24.                                  $delete_name_group = mysql_query ("DELETE FROM party WHERE id_party = '$_POST[id_party]' ");
  25.                                  $delete_access_group = mysql_query ("DELETE FROM access WHERE id_party = '$_POST[id_party]'");
  26.                                  if($delete_access_group >0) {exit("Группы успешно удалены");}
  27.                         }
  28.                 }
  29.         }


как сделать выборку в массив id_party ваще суть скрипта такова мы отмечаем галками нужные нам поля и жмем на кнопку где идет проверка если галка стоит то удаляем запись с этим id если не стоит то нечего с ним не делаем.
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Июня, 2011 - 17:45:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM party WHERE id_party IN (1,4,67,88,122.....)
 
 Top
PATCH
Отправлено: 23 Июня, 2011 - 17:59:27
Post Id



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


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


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




DeepVarvar пишет:
DELETE FROM party WHERE id_party IN (1,4,67,88,122.....)

id_party у нас не фиксированое N-количество
 
 Top
vsll
Отправлено: 23 Июня, 2011 - 18:06:50
Post Id


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


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


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




PHP:
скопировать код в буфер обмена
  1. echo "<input type='checkbox' name='party' value='".$group_row3['id_party']."' />";
  2. if(isset($_POST[$v])) {
  3.     $party_ids = "";
  4.     if (isset($_POST['party']) && is_array($_POST['party'])) {
  5.         foreach ($_POST['party'] as $thisnum) {
  6.             if (is_int($thisnum)) { $party_ids .= ($party_ids ? "," : "").$thisnum; }
  7.         }
  8.         $delete_access_group = mysql_query("DELETE FROM access WHERE id_party IN (".$party_ids.")");
  9.     }
  10. }
 
 Top
PATCH
Отправлено: 23 Июня, 2011 - 18:19:10
Post Id



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


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


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




не работает) вообще не чего не удаляет)
 
 Top
vsll
Отправлено: 23 Июня, 2011 - 18:25:29
Post Id


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


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


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




Вы имена кнопок и запросов сверьте, я вам ориентировочный алгоритм написала, а не готовый код. У меня такая схема работает
 
 Top
PATCH
Отправлено: 23 Июня, 2011 - 18:42:52
Post Id



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


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


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




вроде все перепроверил и все равно не работает)

PHP:
скопировать код в буфер обмена
  1.         echo ("<form action='delete_group.php' method='post'>");
  2.        
  3.         do{print ("<div><input type='checkbox' name='party' value='".$group_row3['id_party']."' />".$group_row3['name_party']."</div>");}
  4.        
  5.         while ($group_row3 = mysql_fetch_array($group_res3));
  6.        
  7.         echo ("<input name='delete_sub_party' type='submit' value='Удалить'></form>");
  8.        
  9.         if(isset($_POST['delete_sub_party']))
  10.         {
  11.  
  12.     $party_ids = "";
  13.     if (isset($_POST['party']) && is_array($_POST['party']))
  14.                 {
  15.                 foreach ($_POST['party'] as $thisnum)
  16.                          {  if (is_int($thisnum)) { $party_ids .= ($party_ids ? "," : "").$thisnum; }}
  17.         $delete_access_group = mysql_query("DELETE FROM access WHERE id_party IN (".$party_ids.")");
  18.                 $delete_name_group = mysql_query ("DELETE FROM party WHERE id_party IN (".$party_ids.") ");
  19.         if($delete_access_group >0) {exit("Группы успешно удалены");}
  20.         }
  21.         }
  22.  
 
 Top
vsll
Отправлено: 23 Июня, 2011 - 18:47:15
Post Id


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


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


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




посмотрите, в исходном коде страницы значения value для чекбоксов - integer?
 
 Top
PATCH
Отправлено: 23 Июня, 2011 - 18:49:07
Post Id



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


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


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




да <input type='checkbox' name='party' value='26' />
 
 Top
Toxa
Отправлено: 23 Июня, 2011 - 18:50:01
Post Id



Посетитель


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


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

[+]


да причем тут значения, если у него все чекбоксы имеют одинаковое имя? Когда ж вы уже научитесь делать
PHP:
скопировать код в буфер обмена
  1. echo "<pre>".print_r($_POST, true)."</pre>";

(Отредактировано автором: 23 Июня, 2011 - 18:50:25)



-----
Удобный сервис для хранения файлов
 
 Top
vsll
Отправлено: 23 Июня, 2011 - 18:54:42
Post Id


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


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


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




PHP:
скопировать код в буфер обмена
  1. <input type='checkbox' name='party[]' value='".$group_row3['id_party']."' />
 
 Top
PATCH
Отправлено: 23 Июня, 2011 - 19:30:33
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1.                 if(isset($_POST['delete_sub_party']) && isset($_POST['party']))
  2.         {
  3.  
  4.                         foreach ($_POST['party'] as $party)
  5.                         {
  6.                                 $delete_name_group = mysql_query ("DELETE FROM party WHERE id_party = '$party' ");
  7.                          $delete_access_group = mysql_query ("DELETE FROM access WHERE id_party = '$party'");
  8.                         if($delete_access_group >0) {exit("Группы успешно удалены");}
  9.                         }
  10.         }
удаляет только по одному файлу) как я понел ет из за того что я закинул значение в переменую а не в массив) как вот значение перекинуть в массив

(Отредактировано автором: 23 Июня, 2011 - 19:35:34)

 
 Top
vsll
Отправлено: 23 Июня, 2011 - 19:39:17
Post Id


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


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


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




да нет, так не будет работать, оставьте предыдущую схему и у чекбоксов смените party на party[]
 
 Top
PATCH
Отправлено: 23 Июня, 2011 - 19:46:24
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1.   if(isset($_POST['delete_sub_party']))
  2.         {
  3.  
  4.     $party_ids = "";
  5.     if (isset($_POST['party']) && is_array($_POST['party']))
  6.          {
  7.              foreach ($_POST['party'] as $thisnum)
  8.                                   {  if (is_int($thisnum)) { $party_ids .= ($party_ids ? "," : "").$thisnum; }}
  9.                                 $delete_access_group = mysql_query("DELETE FROM access WHERE id_party IN (".$party_ids.")");
  10.                         $delete_name_group = mysql_query ("DELETE FROM party WHERE id_party IN (".$party_ids.") ");
  11.                                 if($delete_access_group >0) {exit("Группы успешно удалены");}
  12.         }
  13. }


так вообще не работает) с чекбуксом

PHP:
скопировать код в буфер обмена
  1. "<div><input type='checkbox' name='party[]' value='".$group_row3['id_party']."'/>".$group_row3['name_party']."</div>"
 
 Top
vsll
Отправлено: 23 Июня, 2011 - 19:51:18
Post Id


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


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


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




PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['delete_sub_party']))
  2.         {
  3.  var_dump ($_POST['party']);
  4.  
  5. }
результат напишите сюда
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB