2010-07-31 3 views
0

Я использую форму для ввода имени пользователя и пароля для хранения значения в базе данных, после отправки формы я определил таблицу для отображения всех значений из таблицы пользователей, у нее есть 3 поля (id, name, pass) Я хочу удалить каждую запись по ее идентификатору.Как удалить записи из таблицы?

я выборки данных из таблицы пользователей, используя следующий код:

while($row = mysql_fetch_assoc($result_select)) { 
      echo "<tr>"; 
      echo "<td>" . $row['id'] . "</td>"; 
      echo "<td>" . $row['name'] . "</td>"; 
      echo "<td>" . $row['pass'] . "</td>"; 
      echo "</tr>"; } 

я хочу, чтобы добавить гиперссылку удаления, чтобы удалить отдельные записи по идентификатору.

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

if(mysql_num_rows($result_select) > 0) { 

     if(isset($_POST['id'])) { 
      $query_delete = "DELETE FROM users WHERE id =" .$_POST['id']; 
      $result_delete = mysql_query($query_delete); 

     } 
     echo "<table cellpadding=10 border=1>"; 
     while($row = mysql_fetch_assoc($result_select)) { 

      echo "<tr>"; 
      echo "<td>" . $row['id'] . "</td>"; 
      echo "<td>" . $row['name'] . "</td>"; 
      echo "<td>" . $row['pass'] . "</td>"; 
      echo "<td><a href=".$_SERVER['PHP_SELF']."?id=".$row[id].">Delete</a></td>"; 
      echo "</tr>"; 
     } 
    echo "</table>"; 
    } 

Я новичок в программировании, я был бы признателен, если кто-нибудь объяснить мне простыми словами .. спасибо :)

+1

Сделайте что-нибудь против SQL-атаки, иначе кто-то взломает вашу базу данных прямо в ад. Используйте кавычки в своем фрагменте SQL и mysql_real_escape_string(), чтобы избежать взломов. –

ответ

1

Прежде всего положить удаления кода вашей страницы, как это:

if(isset($_POST['submit'])) { 

     for($i = 0; $i < count($_POST['del']); $i++) 
     { 
      // check which records to delete 
      if (isset($_POST['del'][$i])) 
      { 
      $query_delete = "DELETE FROM users WHERE id = " . (int) $_POST['del'][$i]; 
      $result_delete = mysql_query($query_delete) or die(mysql_error()); 
      } 
     } 

     echo 'Record Deleted !!' . '<br /><br />'; 
    } 

Позже поместить ваш выбор код и изменить его следующим образом:

echo '<form action="" method="POST">'; 
while($row = mysql_fetch_assoc($result_select)) { 
     echo "<tr>"; 
     echo "<td>" . $row['id'] . "</td>"; 
     echo "<td>" . $row['name'] . "</td>"; 
     echo "<td>" . $row['pass'] . "</td>"; 
     echo "<td><input type=\"checkbox\" name=\"del[]\"></td>"; 
     echo "</tr>"; 
} 
echo '<input type="submit" name="submit">'; 
echo '</form>'; 
+0

спасибо, я искал эту информацию. –

+0

Привет, sAc, спасибо, что вы указали это, это был второй вопрос моего форума, когда я присоединился до двух дней, и я не знал о правилах и положениях. большое вам спасибо за ответ. –

+0

@ Ибрагим Ажар Армар: Добро пожаловать :) – Sarfraz

0

Вам нужно изменить $_POST к $_GET, так что это должно работать.

if(isset($_GET['id'])) { 
    $query_delete = "DELETE FROM users WHERE id =" .$_GET['id']; 
    $result_delete = mysql_query($query_delete); 

, а также поместить значение атрибутов внутри двойных кавычек, как этого

echo '<td><a href="'.$_SERVER['PHP_SELF'].'?id='.$row[id].'">Delete</a></td>'; 
+1

Я действительно не рекомендую использовать GET для операций удаления. Пользователь может случайно получить доступ к URL-адресу, и у вас будут нежелательные удаления. Я считаю, что W3C не рекоммендует GET для модификации действий (вставка/обновление/удаление). Используйте его только для отображения данных;) – Bogdan

+0

И если вам действительно нужно, по крайней мере, сделать intval() в аргументе. Лучше использовать PDO для подключения к базе данных и работать со связыванием. – Blizz

+0

Какой метод вы использовали бы для удаления записей? Невозможно удалить записи с помощью $ _POST ?? –

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