PHP Mysqli Удалить из БД - PullRequest
       6

PHP Mysqli Удалить из БД

0 голосов
/ 01 октября 2018

Поэтому я подумал, что это будет простой запрос, чтобы просто удалить строки, в которых не было данных, хранящихся в определенных столбцах, но по какой-то причине мой запрос возвращает, что нулевые строки были удалены, я проверил таблицу, и онивсе еще там.

Что я хочу сделать, это удалить из моей таблицы gps_routes, где route_lat и route_long не содержат места (пусто).

Я проверил свойчтобы убедиться, что у меня также включены разрешения на удаление.

$sql = "SELECT * FROM gps_routes";
$result = $link->query($sql);
$rowCount = $result->num_rows; $rows_deleted = 0; $delete_row = false;

if ($rowCount > 0)
{

 while($row = $result->fetch_assoc())
 {
      $user = $row['user_email'];
      $id = $row['route_id'];
      $lat = $row['route_lat'];
      $lng = $row['route_long'];

      if (empty($lat) || empty($lng)){
        $delete_row = true;
      }

      if (ctype_space($lat) || strlen(trim($lat)) == 0){
        $delete_row = true;
      }

      if ($lat == '' || $lat == ""){
        $delete_row = true;
      }

      if ($delete_row){
        $rows_deleted++;
        mysqli_query($link, "DELETE FROM gps_routes WHERE user_email = '$user' AND route_id = '$id'");
     }
  }
     echo "Routes deleted: $rows_deleted";
}

1 Ответ

0 голосов
/ 01 октября 2018

Из вашего кода можно предположить, что вы просто хотите просмотреть свою БД и проверить, являются ли значения lat и long пустыми.Если они затем удаляются.

Похоже, вы можете просто использовать этот запрос, чтобы выполнить работу.

mysqli_query($link, "DELETE FROM gps_routes WHERE (route_lat = '' OR route_lat IS NULL) OR (route_long = '' OR  route_long IS NULL)");

Так я бы сделал это на основе предоставленного вами кода.:

$query = "DELETE FROM gps_routes WHERE (route_lat = '' OR route_lat IS NULL) OR (route_long = '' OR  route_long IS NULL)";
$result = $link->query($query);

echo 'Routes deleted: ' . $result->num_rows;
...