2017-02-22 30 views
-1

Вот мой кодКак я могу удалить только один из элементов таблицы, потому что если я нажимаю, он будет удалять любой из записей

<?php 
require '../db/dbcon.php'; 
$sql="SELECT ClientId,Email,FirstName,LastName,Password,PhoneNumber,AdressID from client;"; 
$sth = $dbh->prepare($sql); 
$sth->execute(); 
foreach($sth as $row){ 
    echo "<tr>"; 
    echo "<td>".$row['FirstName']."</td>"; 
    echo "<td>".$row['LastName']."</td>"; 
    echo "<td>".$row['Password']."</td>"; 
    echo "<td>".$row['Email']."</td>"; 
    echo "<td>".$row['PhoneNumber']."</td>"; 
    echo "<td></td>"; 
    echo "<td></td>"; 
    echo "<td></td>"; 
    echo "<td></td>"; 
    $clientid=$row['ClientId']; 
    echo "<form action=\"viewclients.php\" method=\"post\"> "; 
    echo "<td><input type=\"submit\" name=\"fshij\" value=\"Fshij\"></td>"; 
    echo "</form>"; 
    if(isset($_POST['fshij'])){ 
     $sql = "DELETE FROM client WHERE ClientId=".$clientid.";"; 
     $sth = $dbh->prepare($sql); 
     $sth->execute(); 
     header('location:viewclients.php'); 
    } 
    echo "</tr>"; 
} 
?> 

После результаты показаны в веб-страницы, если я нажму удалить в любой из этих записей, он удалит все из них.

+0

, как вы выполняете удаление запроса внутри цикла – Naincy

+0

Если 'Исеть ($ _ POST [«fshij»])' проверяет истинно, он будет запустить удаление на каждой итерации. –

+0

Что вы подразумеваете под «если я нажму» –

ответ

1

Начните с размещения значения ClientId в значении кнопки.

Затем переместите код удаления вверху скрипта и вне цикла.

<?php 
require '../db/dbcon.php'; 

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

    // use a parameterised query here as you are passing user data 
    // to this query 
    $sql = "DELETE FROM client WHERE ClientId=?"; 
    $sth = $dbh->prepare($sql); 

    // if MYSQLI 
    $sth->bind_param("i", $_POST['fshij']); 
    $sth->execute(); 

    // if PDO   
    $sth->execute(array($_POST['fshij'])); 

    header('location:viewclients.php'); 
} 

$sql="SELECT ClientId,Email,FirstName,LastName, 
      Password,PhoneNumber,AdressID 
      from client"; 
// you could have done this query using ->query() as there are no parameters to prepare 
$sth = $dbh->prepare($sql); 
$sth->execute(); 
foreach($sth as $row){ 
    echo "<tr>"; 
    echo "<td>".$row['FirstName']."</td>"; 
    echo "<td>".$row['LastName']."</td>"; 
    echo "<td>".$row['Password']."</td>"; 
    echo "<td>".$row['Email']."</td>"; 
    echo "<td>".$row['PhoneNumber']."</td>"; 
    echo "<td></td>"; 
    echo "<td></td>"; 
    echo "<td></td>"; 
    echo "<td></td>"; 

    echo "<td>"; 
    echo "<form action=\"viewclients.php\" method=\"post\"> "; 
     echo "<input type='submit' name='fshij' value='{$row['ClientId']}'>"; 

    echo "</form>"; 
    echo "</td>"; 
    echo "</tr>"; 
} 
?> 
+0

Вы можете оставлять комментарии, но не редактируйте ответ, чтобы добавить благодарность – RiggsFolly

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