2016-02-17 2 views
-4

У меня проблема. Я создаю формы (usuw1.php) и (usuw2.php). Но когда я хочу удалить строку, я получил сообщение об ошибке, что строки не удаляются. Я не знаю, почему, потому что мой код в порядке. Думаю. Пожалуйста помогите.Удалить строку в базе данных (MySql и PHP), используя форму

<html> 
<body> 
<h2>Usuwanie Rekordu</h2> 
<form action="usuw2.php" method="post"> 
    <table> 
    <tr> 
     <td>ID:</td> 
     <td><input type="text" name="ID" id="ID" ></td> 
    </tr> 
    <tr> 
     <td>Nacja:</td> 
     <td><input type="text" name="Nacja" id="Nacja" ></td> 
    </tr> 
    <tr> 
     <td>LiczbaPkt:</td> 
     <td><input type ="text" name="LiczbaPkt" id="LiczbaPkt"></td> 
    </tr> 
    <tr> 
     <td><input name="delete" type="submit" id="dodaj" 
value="Usun Rekord"></td> 
    </tr> 
    </table> 
</form> 

</body> 
</html> 

<?php 

// php code to Delete data from mysql database 

if(isset($_POST['delete'])) 
{ 
    $hostname = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $databaseName = "kluby ranking"; 

    // get id to delete 
     $ID=$_POST["ID"]; 
     $Nacja=$_POST["Nacja"]; 
     $LiczbaPkt=$_POST["LiczbaPkt"]; 

    // connect to mysql 
    $connect = mysqli_connect($hostname, $username, $password, $databaseName); 

    // mysql delete query 
    $query = "DELETE FROM `europa` WHERE `ID ,Nacja, LiczbaPkt` = $ID,$Nacja,$LiczbaPkt"; 

    $result = mysqli_query($connect, $query); 

    if($result) 
    { 
     echo 'Data Deleted'; 
    }else{ 
     echo 'Data Not Deleted'; 
    } 
    mysqli_close($connect); 
} 
+1

Попробуйте этот запрос '$ query =" УДАЛИТЬ ОТ ЕВРОПЫ WHERE ID = $ ID и Nacja = $ Nacja и LiczbaPkt = $ LiczbaPkt ";' – PHPExpert

+0

Если у вас нет столбца с именем 'ID, Nacja, LiczbaPkt', mysql должен вызывать ошибки при вы ... Также SQL injection hole ... – PeeHaa

+0

Если вы добавили проверку ошибок - вы можете получить полезную информацию обратно, как ваш синтаксис SQL неверен. – PaulF

ответ

0

Если вы хотите сравнить более 1 столбца с кучей результатов, вы не можете использовать знак EQUALS (=). Вы можете достичь этого либо кратные условиях с AND или с помощью IN вроде этого:

$query = "DELETE FROM `europa` WHERE (`ID`,`Nacja`,`LiczbaPkt`) in ('$ID','$Nacja','$LiczbaPkt')" 

Или с несколькими условиями:

$query = "DELETE FROM `europa` WHERE `ID` = '$ID' AND `Nacja` = '$Nanja' AND `LiczbaPkt` = '$LiczbaPkt'" 
0

у Вас есть ошибка в этой строке $ запроса = «DELETE FROM europa WHERE ID ,Nacja, LiczbaPkt = $ ID, $ Nacja, $ LiczbaPkt ";

заменить выше строку в

$ запроса = "DELETE FROM europa WHERE ID = '$ ID' и Nacja = '$ Nacja' и LiczbaPkt = '$ LiczbaPkt'";

0

использовать этот запрос

$ запроса = "DELETE FROM europa WHERE ID = '$ ID' и Nacja = '$ Nacja' И LiczbaPkt` = '$ LiczbaPkt'";

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