powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php +mysql) не могу удалить строки, которые выделены с помощью выделить все
7 сообщений из 7, страница 1 из 1
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
    #37862522
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<!--Отмечаем все чекбоксы-->
<script type="text/javascript">
 
  function checkAll(obj) {
 
    'use strict';
      // Получаем NodeList дочерних элементов input формы:
      var input_items = obj.form.getElementsByTagName("input"),
          item;            
      // Здесь, увы цикл по элементам формы:
      for (item in input_items) {
          // Проверка, является ли данный элемент непосредственным свойством
          // объекта input_items ( Это рекомендуется сделать )
          if (input_items.hasOwnProperty(item)) {
              // Дальше логика простая: если checkbox "Выбрать всё" - отмечен
              // - отмечаем все чекбоксы...
              if (input_items[item].type=== "checkbox") {
                  if (!obj.checked) {
                      
					   input_items[item].checked = false;
					  document.check.delete.disabled=true;// если выделены чекбокс для всех чекбоксов, то кнопка delete disabled=false
					 
                  // Иначе снимаем отметки со всех чекбоксов:
                  } else {
                      input_items[item].checked = true;
					 document.check.delete.disabled=false;//если выделены чекбокс для всех чекбоксов, то кнопка delete disabled=true
                  }
              }        
          }
      }//end for
  }
</script>


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
<!--Делаем активной submin delete только если выбран чекбокс-->
<script type='text/javascript'>

function apply(obj)
{

var one_enabled = false;	
c = document.getElementsByTagName('input');
  for (var i = 1; i < c.length; i++)
  {
    if (c[i].type == 'checkbox')
    {
      if (c[i].checked)
	  {
		  one_enabled = true;
	  }
    }
  }	
	
	
  if(!one_enabled)
  {
   
	document.check.delete.disabled=true;
	  
  }
  else 
  {
	
    document.check.delete.disabled=false;
  }

 
 
}


</script>


Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<form name="check" action="index.php" method="post">
<table>

<i>{$tbl_photos}</i>
<tr>
<td><input type="checkbox" name="checkbox[]" id="checkbox[]" onclick="checkAll(this)" /> 
      </td>
<td><b>Id</b></td>
<td><b>Name</b></td>
<td><b>Size</b></td>
<td><b>Comments</b></td>
<td><b>Album Id</b></td>
<td><b>User</b></td>
<td><b>Photo</b></td>
<td><b>Date Time</b></td>
</tr>

{foreach from=$photos item=n }
<tr>
	<td> <input name="checkbox[]" type="checkbox" id="checkbox[]" value="{$n.photos_id}" onClick="apply()"></td>
	<td> {$n.photos_id}  </td>  
    <td> {$n.photos_name}  </td>  
	<td> {$n.photos_size}</td> 
	<td> {$n.photos_comment}</td>
	<td> {$n.album_id} </td>
	<td> {$n.user_id} </td>	
	<td>
	<img src="{$n.photo}" alt="" width="50" height="50"><br>
	</td>
	<td> {$n.post_date} </td>
</tr>



{/foreach}

</table>

<input name="delete" type="submit" id="delete" value="Delete">

</form>
<a href='upload.php'>New note</a><br/>




index.php


ОБРАБОТЧИК HTML
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
/*------------------------Запрос на вывод элементов массива таблицы $table_ph, она же 'photos'--------*/
// 
//$result_photos = mysql_query("SELECT * FROM $table_ph") or trigger_error(mysql_error()); 
$query_photos = "SELECT * FROM $table_ph"; 
$result_photos = mysql_query($query_photos, $link) or die (mysql_error());

while ($row_photos = mysql_fetch_assoc($result_photos))
    $photos_arr[] = $row_photos;
 
$smarty ->assign('photos', $photos_arr); /* для того, чтобы потом использовать переменную в tpl, её 
                                          нужно ОБЯЗАТЕЛЬНО assign и в tpl,в данном случае используем
										  переменную {$photos}. В данном случае эта переменная для 
										  вывода данных из таблицы $table_ph */
										 
$smarty->assign('tbl_photos', $table_ph); /* в tpl используем переменную {$photos}*/ 
$smarty->display('photos.tpl');// подключаем наш "html", в котором выводятся элементы массива




// Check if delete button active, start this
if (!($_POST['checkbox']))
{
}
else
{
if (($_SERVER['REQUEST_METHOD'] == 'POST') AND $_POST['checkbox'])
{
	$delete = $_POST['delete'];
	if($delete){

$del_arr_str = implode($_POST['checkbox'], ',');


/*$sql_sel_photo="SELECT `photo` FROM $table_ph WHERE `photos_id` IN ($del_arr_str)" ;
$result_sel=mysql_query(sql_sel_photo);*/

/*$sql_sel_photo = "SELECT `photo` FROM $table_ph WHERE `photos_id` = $del_arr_str)";
$res_sel_photo = mysql_query($sql_sel_photo);*/



$sql_delete_photos = "DELETE FROM $table_ph WHERE photos_id IN ($del_arr_str)";
$result = mysql_query($sql_delete_photos);



if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
//print ($res_sel_photo);
//var_dump ($result_sel);
}
else die (mysql_error());
}
}
}





Так вот, по отдельному выделенные чекбоксы удаляет, а когда я одним чекбоксом выделяю все, то не происходит удаления и появляется такая ошибка
Код: php
1.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on,62)' at line 1




Подскажите, как быть, пожалуйста
...
Рейтинг: 0 / 0
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
    #37862528
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маф,

Запрос с ошибкой покажите для начала.
...
Рейтинг: 0 / 0
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
    #37862532
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и
Код: php
1.
var_dump($_POST['checkbox']);
...
Рейтинг: 0 / 0
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
    #37862540
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
array(2) { [0] => string(2) "on" [1] => string(2) "62" }  




Код: php
1.
2.
$sql_delete_photos = "DELETE FROM $table_ph WHERE photos_id IN ($del_arr_str)";
$result = mysql_query($sql_delete_photos);
...
Рейтинг: 0 / 0
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
    #37862549
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вдавался в подробности но:
Код: php
1.
2.
<td><input type="checkbox" name="checkbox[]" id="checkbox[]" onclick="checkAll(this)" /> 
<td> <input name="checkbox[]" type="checkbox" id="checkbox[]" value="{$n.photos_id}" onClick="apply()"></td>


имеют одинаковые имена => если выделин checkAll то он тоже придет на сервер и его значение будет "on" (так как валюе не указан). Вот вам в SQL и попадает запрос в виде: DELETE FROM $table_ph WHERE photos_id IN (1,2,3,4,on,5,6) что приводит к ошибке
...
Рейтинг: 0 / 0
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
    #37862553
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо большое)
...
Рейтинг: 0 / 0
(php +mysql) не могу удалить строки, которые выделены с помощью выделить все
    #37862561
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, поменял name чекбокса и все заработало)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php +mysql) не могу удалить строки, которые выделены с помощью выделить все
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]