2015-11-27 2 views
-1

У меня есть таблица HTML, отображающая данные из базы данных MySQL. Я хочу добавить кнопку «удалить строку», так что щелчком я могу удалить строку из таблицы базы данных (данные, связанные с идентификатором участника).Удалить строку в таблице - MySQL, PHP, HTML

Я вижу, что должен делать SQL, но я не знаю, как его реализовать с помощью PHP.

У меня также есть страница поиска, где вы можете найти участника, введя свое имя, и я хочу добавить ту же функцию удаления на эту страницу поиска.

Но на данный момент я хочу, чтобы он работал над таблицей HTML, которая сначала отображает все данные!

Вот мой код (минус подключение и отключение от базы данных и все такое):

// Retrieve Member Details 
$sql = "SELECT MemberID, FirstName, Surname, DOB, Address, County, 
       PostCode, MobileNo, Email FROM Members"; 
$result = mysql_query($sql, $connection); 

//create table 
echo "<table>"; 

// Loop through the data and then display chosen data 
echo "<h2>Member Details</h2>"; 
echo "<tr><th>Member ID</th><th>First Name</th><th>Surname</th> 
     <th>DOB</th><th>Address</th><th>County</th><th>Post Code</th> 
     <th>Mobile Number</th><th>Email</th><tr>"; 
while($a_row = mysql_fetch_assoc($result)) 
    echo "<tr><td>" . $a_row['MemberID'] 
     . "</td><td>" . $a_row['FirstName'] 
     . "</td><td>" . $a_row['Surname'] 
     . "</td><td>" . $a_row['DOB'] 
     . "</td><td>" . $a_row['Address'] 
     . "</td><td>" . $a_row['County'] 
     . "</td><td>" . $a_row['PostCode'] 
     . "</td><td>" . $a_row['MobileNo'] 
     . "</td><td>" . $a_row['Email'] 
     . "</td><tr>";          
//close table 
echo "</table>"; 

кода для поиска страницы:

<?php 
    // Connecting to Database Server 
    $connection = mysql_connect("localhost", "1520621", 

    // If connection cannot be made to Database Server 
    if (!$connection) 
    die("Cannot connect to Database"); 

    // Select the database 
    mysql_select_db("db1520621", $connection) 
    // If Database cannot be found 
    or die("Cannot find Database"); 

    // SQL 
    // Select all data from Members table where FirstName matches that which is inserted into searchName using POST 
    $sql ="SELECT * FROM Members"; 
    $sql.=" WHERE FirstName=\"".$_POST["searchName"]."\""; 

    // Execute the query 
    $queryResult=mysql_query($sql); 

    //Check for errors and display following messages if there is 
    if (mysql_error()) 
    { 
    echo "Problem with Query<br>"; 
    echo "The following error message was returned from MySQL:<br>"; 
    echo mysql_error(); 
    exit; 
    } 

    //Create table 
    echo "<table>"; 
    echo "<h2>Member Details</h2>"; 
    echo "<tr><th>First Name</th><th>Surname</th><th>DOB</th><th>Address</th><th>County</th><th>Post Code</th><th>Mobile Number</th><th>Email</th><tr>"; 

    // If no results found show message. If results found, loop if there is more than 1 result 
    if (mysql_num_rows($queryResult)==0) 
    { 
    echo "No members with that name"; 
    } 
    else 
    { 
    while ($dbRecord=mysql_fetch_array($queryResult)) 
    { 
     echo "<tr><td>".$dbRecord["FirstName"]."</td><td>".$dbRecord["Surname"]."</td><td>".$dbRecord["DOB"]."</td><td>".$dbRecord["Address"]."</td><td>".$dbRecord["County"]."</td><td>".$dbRecord["PostCode"]."</td><td>".$dbRecord["MobileNo"]."</td><td>".$dbRecord["Email"]."</td></tr>"; 
    } 
    } 

    // Close connection to Database 
    mysql_close($connection); 
    ?> 
+1

пожалуйста Не используйте mysql_ * Funcitons они амортизируются в последних версиях PHP –

+0

я неясное на этой проблеме. Что происходит, когда вы запускаете это? –

ответ

0

Вот полный код для удаления строки из базы данных. Сначала вам нужно добавить ссылку удаления и пропустить идентификатор участника, который будет удален.

// Check if delete button is clicked and delete respective row 
if(isset($_GET['DeleteID']) AND !empty($_GET['DeleteID'])) 
    mysql_query("DELETE FROM Members where MemberID = '".$_GET['DeleteID']."'", $connection); 

// Retrieve Member Details 
$sql = "SELECT MemberID, FirstName, Surname, DOB, Address, County, PostCode, MobileNo, Email FROM Members"; 
$result = mysql_query($sql, $connection); 

//create table 
echo "<table>"; 

// Loop through the data and then display chosen data 
echo "<h2>Member Details</h2>"; 
echo "<tr><th>Member ID</th><th>First Name</th><th>Surname</th><th>DOB</th><th>Address</th><th>County</th><th>Post Code</th><th>Mobile Number</th><th>Email</th><th>Delete</th><tr>"; 
while($a_row = mysql_fetch_assoc($result)){ 
    echo "<tr><td>" . $a_row['MemberID'] . "</td><td>" . $a_row['FirstName'] . "</td><td>" . $a_row['Surname'] . "</td><td>" . $a_row['DOB'] . "</td><td>" . $a_row['Address'] . "</td><td>" . $a_row['County'] . "</td><td>" . $a_row['PostCode'] . "</td><td>" . $a_row['MobileNo'] . "</td><td>" . $a_row['Email'] . "</td>"; 
    echo "<td><a href='?DeleteID=" . $a_row['MemberID'] . "' onclick=\"return confirm('Delete?')\">Delete</a></td></tr>"; 
} 
//close table 
echo "</table>"; 

Поиска кодовой страницы

<?php 
    // Connecting to Database Server 
    $connection = mysql_connect("localhost", "1520621", "w9p1n5"); 

    // If connection cannot be made to Database Server 
    if (!$connection) 
    die("Cannot connect to Database"); 

    // Select the database 
    mysql_select_db("db1520621", $connection) 
     // If Database cannot be found 
     or die("Cannot find Database"); 

    // SQL 
    if(isset($_GET['DeleteID']) AND !empty($_GET['DeleteID'])) 
    mysql_query("DELETE FROM Members where MemberID = '".$_GET['DeleteID']."'", $connection); 

    // Select all data from Members table where FirstName matches that which is inserted into searchName using POST 
    $sql ="SELECT * FROM Members"; 
    $sql.=" WHERE FirstName=\"".$_REQUEST["searchName"]."\""; 

    // Execute the query 
    $queryResult=mysql_query($sql); 

    //Check for errors and display following messages if there is 
    if (mysql_error()) 
    { 
     echo "Problem with Query<br>"; 
     echo "The following error message was returned from MySQL:<br>"; 
     echo mysql_error(); 
     exit; 
    } 

    //Create table 
    echo "<table>"; 
    echo "<h2>Member Details</h2>"; 
    echo "<tr><th>First Name</th><th>Surname</th><th>DOB</th><th>Address</th><th>County</th><th>Post Code</th><th>Mobile Number</th><th>Email</th><tr>"; 

    // If no results found show message. If results found, loop if there is more than 1 result 
    if (mysql_num_rows($queryResult)==0) 
    { 
     echo "No members with that name"; 
    } 
    else 
    { 
     while ($dbRecord=mysql_fetch_array($queryResult)) 
     { 
      echo "<tr><td>".$dbRecord["FirstName"]."</td><td>".$dbRecord["Surname"]."</td><td>".$dbRecord["DOB"]."</td><td>".$dbRecord["Address"]."</td><td>".$dbRecord["County"]."</td><td>".$dbRecord["PostCode"]."</td><td>".$dbRecord["MobileNo"]."</td><td>".$dbRecord["Email"]."</td>"; 
      echo "<td><a href='?DeleteID=" . $dbRecord['MemberID'] .(isset($_REQUEST['searchName'])?'&searchName='.$_REQUEST['searchName']:''). "' onclick=\"return confirm('Delete?')\">Delete</a></td></tr>"; 
     } 
    } 

    // Close connection to Database 
    mysql_close($connection); 
?> 
+0

Я до сих пор не могу заставить его работать. Спасибо за вашу помощь. – Macast

+0

Какой вопрос вы получаете? –

+0

Опция удаления появляется, но только для последней записи в таблице. Когда я нажимаю кнопку «Удалить», ничего не удаляется. – Macast

0

Вы должны использовать объекты PHP Data (http://php.net/manual/en/ref.pdo-mysql.php) или MySQLi (http://php.net/manual/en/book.mysqli.php).

Табличка Ending <tr> на эхо-линии не закрыта (</tr>), которая может быть беспорядочной с выходом HTML.

SQL запрос для удаления:

$query = sprintf("DELETE FROM Members WHERE MemberID = '%s'", 
mysql_real_escape_string($member_id));