@Alexis_D

Возвращает NULL после подгрузки из базы, почему?

Доброго времени суток. Есть страница для удаления из базы данных, вывожу по 100 записей как только доскролить до последних записей то начинает подгружать следующие 100, чтобы не глючил, так как записей 90к. для удаления использую "checkbox", в чем собственно проблема, если допустим выделить первые 2 записи, и нажать кнопку удалить, удалиться, но если выбрать первые 2 записи из подгруженных 100 следующих, то при удалении выдает NULL, почему? И как можно исправить?
первые 100 записей
if (isset($_POST['delete_data'])) {
          $cheked = $_POST['check'];
          foreach ($cheked as $del_id) {
            $del = mysqli_query($connect, "DELETE FROM `test_excel` WHERE `id` = $del_id");
          }
        }
          $result = mysqli_query($connect, "SELECT * FROM `test_excel` LIMIT 100");
          while ($row = mysqli_fetch_array($result)) {
            echo "<tr><td><input type='checkbox' name='check[]' value='".$row['id']."'></td><td>".$row['id']."</td><td>".$row['name']."</td><td>".$row['nameScore']."</td><td>".$row['organization']."</td></tr>";
          }


ajax-запрос:
$(document).ready(function(){
var inProgress = false;
var startFrom = 100;

  $(window).scroll(function() {
    if($(window).scrollTop() + $(window).height() >= $(document).height() - 100 && !inProgress) {
      $.ajax({
          url: 'delete_data_ajax.php',
          method: 'POST',
          data: {
            "startFrom" : startFrom
        },
          beforeSend: function() {
          inProgress = true;
          }}).done(function(data){
          data = jQuery.parseJSON(data);
          if (data.length > 0) {
          $.each(data, function(index, data){
          $(".table_delete").append("<tr><td><input type='checkbox' name='check[]' value='"+ data.id +"'></td><td>"+ data.id +"</td> <td>"+ data.name + "</td> <td>" + data.nameScore + "</td> <td>" + data.organization + "</td></tr>");
        });
            inProgress = false;
            startFrom += 100;
        }});
      }
  });
});


файл "delete_data_ajax.php"
$startFrom = $_POST['startFrom'];
   $res = mysqli_query($connect, "SELECT * FROM `test_excel` LIMIT {$startFrom}, 100") or die('нет подключение к бд');

   $resSeacrh = array();
   while ($row = mysqli_fetch_assoc($res)) {
       $resSeacrh[] = $row;
   }
   echo json_encode($resSeacrh);
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
@LiguidCool
  1. Используйте отладку у браузера, смотрите что отправляют ваши AJAX. Также можно просто поотправлять данные тем же Postman.
  2. Смотрите что приходит в PHP, опять же можно вывести данные для отладки.
    Например echo "SELECT * FROM `test_excel` LIMIT {$startFrom}, 100";

  3. Не используйте SQL запросы без "обертки" в ORM или PDO. Это разгильдяйство, говнокод и хакеры скажут вам спасибо. Особенно если у вас переменная приходит от пользователя и сразу вставляется в запрос. Вы ее хоть к integer приведите
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы