@Sandro_s

Как удалить запись из бд с помощью php?

На локальном сервере конф.php - 7.0*64
В БД имеется таблица 'secret_users' с полями: id, name, email, password, ip_reg, data_reg есть users.
Необходимо удалить user c id = 15, либо по логину или email.
5b2ee392a5452244589235.jpeg
Есть ошибка 'Fatal error: Uncaught Error: Call to undefined function mysql_fetch_array() '

<?php

    if (isset($_GET['del'])) {
  //  $result=mysql_query("DELETE FROM firma WHERE id = '15'");
  $sql = mysql_query('DELETE FROM `secret_users` WHERE `ID` = "15"'.$_GET['del'].'"');
 // $sql = mysql_query("DELETE FROM `secret_users` WHERE ID IN('15','".$_GET['del'].'"');
   // $sql = mysql_query("DELETE FROM `secret_users` WHERE ID IN('".$_GET['del'].'"');*/
    if ($sql) {
        echo "<p>Пользователь удален.</p>";
    } else {
        echo "<p>Произошла ошибка.</p>";
    }
}

 $result = $mysqli->query ("DELETE id, name FROM `secret_users`");
// $result = mysql_query("SELECT id, name FROM `secret_users`");

while ($result = mysql_fetch_array($sql)) {
//while ($result =  mysql_fetch_row()($sql)) {
    echo $result['ID'].") ".$result['name']." - <a href='?del=".$result['ID']."'>Удалить</a><br>";
}


?>


Код полностью

<!doctype html>
<html lang="ru">
<head>
<title>Админ-панель</title>
</head>
<body>


<?php


 define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASSWORD', '');
    define('DB_NAME', 'mysite');
    
   $mysqli = @new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    if ($mysqli->connect_errno) exit('Ошибка соединения с БД');
    $mysqli->set_charset('utf8');
    
    

/*$mysqli->query ("INSERT INTO `secret_users`
  (`id`, `name`, `email`, `password`, `balance`, `ip_reg`, `data_reg`) 
  VALUES (NULL, 'Dinn', 'dinn@mail.ru', MD5('123'), '0.00', INET_ATON('127.0.0.1'), UNIX_TIMESTAMP())");


 $mysqli->close();*/


//Если переменная reg передана
if (isset($_POST["reg"])) {
     $name = $mysqli->real_escape_string(htmlspecialchars($_POST['name'])); 
 $email = $mysqli->real_escape_string(htmlspecialchars($_POST['email']));
        $password = $mysqli->real_escape_string(htmlspecialchars($_POST['password']));
        $ip_reg = ip2long($_SERVER['REMOTE_ADDR']);
       $query = ("INSERT INTO `secret_users`
      (`id`, `name`, `email`, `password`,  `ip_reg`, `data_reg`) 
        VALUES (NULL, '$name', '$email', MD5('$password'), '$ip_reg', UNIX_TIMESTAMP())");
        $result = $mysqli->query($query);


         if (isset($result)) {             

        echo "<p>Данные успешно добавлены в таблицу.</p>";
    } else {
        echo "<p>Произошла ошибка.</p>";
    }
    }

?>


<table>
<form name='reg' action='index.php' method='post'>
    <p>
        Имя: <input type='text' name='name' />
    </p>
    <p>
        E-mail: <input type='text' name='email' />
    </p>
    <p>
        Пароль: <input type='password' name='password' />
    </p>
    <p>
        <input type='submit' name='reg' value='Зарегистрироваться' />
    </p>
</table>


<?php

    if (isset($_GET['del'])) {
  //  $result=mysql_query("DELETE FROM firma WHERE id = '15'");
  $sql = mysql_query('DELETE FROM `secret_users` WHERE `ID` = "15"'.$_GET['del'].'"');
 // $sql = mysql_query("DELETE FROM `secret_users` WHERE ID IN('15','".$_GET['del'].'"');
   // $sql = mysql_query("DELETE FROM `secret_users` WHERE ID IN('".$_GET['del'].'"');*/
    if ($sql) {
        echo "<p>Пользователь удален.</p>";
    } else {
        echo "<p>Произошла ошибка.</p>";
    }
}

 $result = $mysqli->query ("DELETE id, name FROM `secret_users`");
// $result = mysql_query("SELECT id, name FROM `secret_users`");

while ($result = mysql_fetch_array($sql)) {
//while ($result =  mysql_fetch_row()($sql)) {
    echo $result['ID'].") ".$result['name']." - <a href='?del=".$result['ID']."'>Удалить</a><br>";
}


?>
  • Вопрос задан
  • 3901 просмотр
Решения вопроса 1
LenovoId
@LenovoId
svg, css,js
Этого будет достаточно : https://www.w3schools.com/Php/php_mysql_delete.asp
и перед mysqli не ставьте @ или $ - не надо гасить ошибки , их надо устранять
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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