Привет всем, у меня есть проблема с моей формой деления пользователей, когда я отправляю кнопку ничего не случилось, в чем проблема, все работает на db, когда я получаю информацию, которую они приходят, но когда я нажимаю на удаление, ничего не происходит
<?php
$host ="localhost";
$dbname ="justnew";
$u_name="root";
$u_pass="youcef02";
echo'
<table border="1px solid #efefef" width="42%">
<tr>
<th>ID</th>
<th>Name</th>
<th>Password</th>
<th>DELETE</th>
</tr>
';
try{
$Conn = new PDO("mysql:host=$host;dbname=$dbname",$u_name,$u_pass);
}
catch(PDOEXCEPTION $e){
echo'There is a prblm' .$e->getMessage();
}
$sql = "SELECT * FROM addu";
$result = $Conn->query($sql);
while($row = $result->fetch(PDO::FETCH_OBJ)) {
echo"
<tr>
<td>" .$row->u_id."</td>
<td>" .$row->u_name."</td>
<td>" .$row->u_pass."</td>
<td><button name='dlt'><a href='attribute.php?
type=dlt&u_id=".$row->u_id."' name='dlt'>DELETE</a></button></td>
</tr>
";
}
if($_GET['type'] == ['dlt']){
$id = intval ($_GET['u_id']);
$Dsql = "DELETE * FROM 'addu' WHERE 'u_id' ='".$id."'";
$Dresult = $Conn->exec($Dsql);
}
?>
Видя, что никто не хотел публиковать ответ, я представляю следующее.
Как указано: if($_GET['type'] == ['dlt'])
является недопустимым. Скобки вокруг dlt
должны быть удалены и должны были бы вызвать синтаксическую ошибку.
if($_GET['type'] == 'dlt')
Тем не менее, вы должны проверить, установлен ли массив GET/не пустым, поскольку без него это также вызовет неопределенное предупреждение индекса с установкой ошибок в вашей системе.
if(isset($_GET['type']) && $_GET['type'] == 'dlt')
или же
if(!empty($_GET['type']) && $_GET['type'] == 'dlt')
Тогда часть DELETE'ing вашего запроса также недействительна.
Он должен читать:
$Dsql = "DELETE FROM 'addu' WHERE 'u_id' ='".$id."'";
Звездочка действительна только с оператором SELECT:
Воспользовавшись обработкой ошибок (PDO), вы наверняка получили бы синтаксическую ошибку:
Теперь этот бит может иметь отрицательный эффект:
<td><button name='dlt'><a href='attribute.php?
type=dlt&u_id=".$row->u_id."' name='dlt'>DELETE</a></button></td>
</tr>
";
Обычно (обычно) это все в одной строке:
<td><button name='dlt'><a href='attribute.php?type=dlt&u_id=".$row->u_id."'>DELETE</a></button></td>
</tr>
";
Здесь можно было бы добавить дополнительные места.
Примечание. Вы дважды использовали атрибут name
.
Если вышеуказанное не выполнено, <a href></a>
не должно находиться внутри <button></button>
, просто используйте <a href></a>
.
if($_GET['type'] == ['dlt'])
должен выдавать ошибку. Вы должны добавить проверку ошибок ко всему этому.*
в удалить. Такжеdlt
это строка, а не массив