2016-08-29 5 views
1

Я написал скрипт PHP, чтобы удалить только одну строку из базы данных MySQL по id. Значение id взято из $_POST кнопки при нажатии. Я попробовал разные способы передать эту переменную, имеющую значение $_POST, но это не сработало. Кажется, все прекрасно, я попробовал один и тот же запрос со статическим значением в БД, и это прекрасно работало. вот мой полный код. Примечание: я также попробовал $_GET, а также попробовал '. $delete_id. ' и '$delete_id'Удалить запрос не работает в php/MYSQL

include ("db_conection.php"); 

    if (isset ($_GET ['view'])) { 
     $view_id = $_GET ['view']; 

     $query_run = null; 

     $query1 = "SELECT * FROM question where testid ='" . $view_id . "'"; 
     $run = mysqli_query ($conn, $query1); // here run the sql query. 
     while ($row = mysqli_fetch_array ($run))   // while look to fetch the result 
              // and store in a array $row. 
     { 

      echo ' 

    <tr> 
    <td>' . $row ['qid'] . '</td> 
    <td>' . $row ['testid'] . '</td> 
    <td>' . $row ['questions'] . '</td> 
    <td> 
    <a href="remove_question.php?del=' . $row ['qid'] . '" class = "btn btn-danger btn-block">Delete</a> 

    </td> 
    </tr> 

     '; 

     } 

     if (isset ($_POST ['del'])) { 
      $delete_id = $_POST ['del']; 
      $delete_query = "Delete from question WHERE qid='".$delete_id."'"; // delete 
                      // query 

      // $run=mysqli_query($conn,$delete_query); 
      $run = $conn->query ($delete_query); 
      if ($run) { 
       // bootstrap class to open in the same window 
       /* 
       * echo "<script>window.open('Admin Delete 
       * member.php','_self')</script>"; 
       */ 

       echo "<script>window.open('remove_question.php','_self')</script>"; 

       echo ' 

<div align = "center" style = "margin-top:10px;" class = "alert alert-success">deleted...</div> 

'; 
      } else { 

       echo "deletion field"; 
      } 

     } 

    } 
+1

WHERE QID = ' "$ delete_id.."' –

+0

Это необычайное большой SQL инъекций уязвимости в нем - не используйте этот код! – halfer

ответ

1

Просто напишите свой запрос на удаление за пределами блока if, как показано ниже.

include ("db_conection.php"); 

if (isset ($_GET ['view'])) { 
    $view_id = $_GET ['view']; 

    $query_run = null; 

    $query1 = "SELECT * FROM question where testid ='" . $view_id . "'"; 
    $run = mysqli_query ($conn, $query1); // here run the sql query. 
    while ($row = mysqli_fetch_array ($run)) 
    { 
     echo ' <tr> <td>' . $row ['qid'] . '</td> <td>' . $row 'testid'] . '</td> <td>' . $row ['questions'] . '</td> <td> <a href="remove_question.php?del=' . $row ['qid'] . '" class = "btn btn-danger btn-block">Delete</a> </td> </tr> '; 
    } 
} 
if (isset ($_GET ['del'])) { 
    $delete_id = $_GET ['del']; 
    $delete_query = "Delete from question WHERE qid='".$delete_id."'"; // delete 
                    // query 

    // $run=mysqli_query($conn,$delete_query); 
    $run = $conn->query ($delete_query); 
    if ($run) { 
     // bootstrap class to open in the same window 
     /* 
     * echo "<script>window.open('Admin Delete 
     * member.php','_self')</script>"; 
     */ 

     echo "<script>window.open('remove_question.php','_self')</script>"; 

     echo '<div align = "center" style = "margin-top:10px;" class = "alert alert-success">deleted...</div>'; 
    } else { 
     echo "deletion field"; 
    } 

} 
+0

Большое вам спасибо .. это отлично работает и отлично. Я провел весь день, разрешая это. –

+0

Добро пожаловать. – SCC

1
$delete_query = "Delete from question WHERE qid='".$delete_id."'"; 
+0

Я попробовал «$. $ Delete_id». '... но это ваш метод ". $ delete_id." Синтаксис неверен –

1

Метод, чтобы получить идентификатор должен быть $ _REQUEST

<a href="remove_question.php?del=' . $row ['qid'] . '" class = "btn btn-danger btn-block">Delete</a> 

Изменение удаления кода запроса, как это, так как вы передаете его в URL на основе $ _REQUEST.

<?php 
if (isset ($_REQUEST ['del'])) { 
      $delete_id = $_REQUEST ['del']; 
      $delete_query = "Delete from question WHERE qid='".$delete_id."'"; // delete 
      // $run=mysqli_query($conn,$delete_query); 
      $run = $conn->query ($delete_query); 
      if ($run) { 
       echo "<script>window.open('remove_question.php','_self')</script>"; 
       echo ' 
<div align = "center" style = "margin-top:10px;" class = "alert alert-success">deleted...</div> 
'; 
      } else { 
       echo "deletion field"; 
      } 
     } 
?> 
+0

спасибо за ваш ответ, но он все еще не работает. –

+0

Положите эхо и выйдите из запроса после этого. и проверьте, проходит ли delete_id –

Смежные вопросы