Как отобразить и удалить данные из базы данных?

0

Я новичок в PHP и стараюсь отображать данные из базы данных, а также удалять их

это для просмотра данных

<?php
require_once 'config.php';
$que="SELECT 'Fname', 'Lname' FROM 'students'";
$myRun=  mysql_query($que);
$numOfRows=mysql_num_rows($myRun);
if ($numOfRows> 0) {

    while($row = mysql_fetch_array($myRun)) {
        echo "First Name: " . $row['Fname']. "  -  Last Name: " . $row['Lname'];
        echo '  <a href="update.php?id="/>Edit</a>
            <a href="delete.php?id="/>Delete</a><br/>';
    }
} else {
    echo "There isn't data to be viewed";
  }
?>

эта часть для удаления, но я не знаю, как получить идентификатор

<?php
require_once 'config.php';
if(isset($_GET['ID'])){
    $id=$_GET['ID'];
    $sql="DELETE FROM 'students' WHERE 'ID'=$id";
    $myquery=  mysql_query($sql);
    if($myquery){
        echo 'The Student #'.$id.'has beed deledted!';
    }
}
?>

что я должен сделать для получения идентификатора и удалить его?

  • 1
    id и ID - это два разных животных .
  • 0
    ID - это имя столбца в базе данных.
Показать ещё 8 комментариев
Теги:
database

4 ответа

0
Лучший ответ

Первая проблема, я вижу, вы не запрашивали идентификатор из базы данных. Измените свой первый запрос на:

$que="SELECT 'ID', 'Fname', 'Lname' FROM 'students'"; 

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

Затем измените ссылку на удаление:

<a href="delete.php?ID=<?php echo $row['ID'];?>">Delete</a>

Затем измените свой комментарий к этому:

echo 'The Student #'.$_GET['ID'].'has been deleted!';

Вы можете пожелать вместо комментирования с идентификатором, передать имя и фамилию, и сказать, что ученик "Боб Смит" был удален. Для этого вы измените ссылку на удаление следующим образом.

<a href="delete.php?ID=<?php echo $row['ID'];?>&Fname=<?php echo $row['Fname'];?>&Lname=<?php echo $_GET['Lname'];?>">Delete</a>

Теперь у вас будет первое и последнее имя как переменные GET с тем же именем, что и их эквиваленты баз данных, что позволит вам сделать это:

echo 'The Student #'.$_GET['ID'].' ('.$_GET['Fname'].' '.$_GET['Lname'].') has been deleted!';

Наконец, как упоминалось выше в комментарии, вы захотите очистить идентификатор до его удаления, чтобы избежать инъекции sql.

Ваша строка удаления должна быть:

$sql="DELETE FROM 'students' WHERE 'ID'=".(int)$_GET['ID'];
  • 0
    Вы также можете избежать передачи имени студента через URL-адрес, запросив его из базы данных, указав введенный вами $ _GET ['ID'], который, возможно, будет немного чище, но потребует дополнительных затрат на запрос к базе данных. ,
  • 0
    Отредактировано с учетом регистра
0

Вам нужно передать параметр ID в свой скрипт в URL-адресе. Это то, что ищет $_GET['ID'].

Таким образом, ваш URL-адрес будет похож на http://website.com/delete_student.php?ID=5

Тогда ваша переменная $id будет установлена правильно, и ваш запрос должен работать.

Вы также можете использовать $_POST['ID'] если значение ID поступает из формы.

Вы также должны рассмотреть возможность использования функции mysql_real_escape_string, чтобы сделать ваш код более безопасным. Http://php.net/manual/en/function.mysql-real-escape-string.php

0

Вероятно, эта помощь, обратите внимание, если вы показываете ссылки, они должны иметь идентификатор:

$que="SELECT 'ID', 'Fname', 'Lname' FROM 'students'";
//more code...

  while($row = mysql_fetch_array($myRun)) {
      echo "First Name: " . $row['Fname']. "  -  Last Name: " . $row['Lname'];
      echo '  <a href="update.php?id="'.$row['ID'].'>Edit</a>
        <a href="delete.php?id="'.$row['ID'].'>Delete</a><br/>';
  }

Из комментариев (@Rasclatt):

if(isset($_GET['id']) && is_numeric($_GET['id'])){
    $id=$_GET['id'];

Затем вы можете изменить PDO или mysqli (PDO как предложение)

0

'id'! = 'ID' Попробуйте

if(isset($_GET['id'])){
    $id = (int) $_GET['id'];
    if ($id > 0)
        $myquery=  mysql_query($sql);
}
  • 2
    Да, я сказал это.
  • 0
    когда я использую его, я получаю это сообщение "Студент № 0 был удален!" однако нет никаких данных его ID = 0

Ещё вопросы

Сообщество Overcoder
Наверх
Меню