我有一個問題,我有一個下拉列表擁有所有者的姓氏,一旦我選擇它,然後按刪除按鈕,它應該從下拉列表中刪除所有者名稱與mySQL數據庫中的任何關聯的所有者信息和船信息。我寫了@sql查詢來執行刪除功能,但似乎沒有刪除它。PHP刪除不工作,並顯示結果表
一旦用戶點擊刪除按鈕,我怎樣才能打印出表(所有者表和MarinaSlip表,這些是mySQL數據庫中的名稱)。我希望它在同一頁面下面顯示兩個表格。
deletedowner.php:
<?php #index.php for Assignment 10
$page_title = 'Assignment 10 for Marina Database';
include('header.html');
require('dbConn.php');
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$id = $_POST['OwnerID'];
try
{
$sql = "DELETE m, o
FROM Owner AS o
LEFT JOIN MarinaSlip AS m
ON o.OwnerNum = m.OwnerNum
WHERE o.OwnerNum = :ownerId";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':ownerId' => $id));
//include('DeletedUpdatedList.php'); when I put uncomment this line, it shows table but the delete button disappears
} // end try
catch (PDOException $e)
{
echo 'Error: '.$e->getMessage();
} //end catch
} //end if server
echo '<center>';
echo '<h3> Select the owners last name from drop down list to delete owner and their boats.</h3>';
$sql = "select OwnerNum, LastName from Owner"; //prints sql query
echo '<form action="Assignment10deleteowner.php" method="POST">';
echo "<select name='OwnerID' id=OwnerID'>";
foreach($conn->query($sql) as $row)
{
echo '<option value = "';
echo $row['OwnerNum'];
echo '"> ';
echo $row['LastName'];
echo '</option>';
} // end foreach
echo '</select>';
echo '<br><input type="submit" name="submit" value="Delete"> <br>';
echo '</form>'; //end form
// now to check if the delete button has been clicked
include('footer.html');
?>
DeletedUpdatedList.php
<?php #index.php for Assignment 10
$page_title = 'Assignment 10 for AlexaMara Marina Database';
echo '<h2> Updated list of Owners and MarinaSlip:</h2>';
$stmt = $conn->prepare("select * from Owner"); //prepare statment to print all of the owners
$stmt->execute(); //excute the sql query
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt = $conn->prepare("select * from MarinaSlip"); //prepare statment to print all of the owners
$stmt->execute(); //excute the sql query
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
echo "<table style='border: solid 1px black;'>"; //make table to display column headers
echo "<tr><th>OwnerNum</th><th>LastName</th><th>FirstName</th><th>Address</th><th>City</th><th>State</th><th>Zip</th></tr>";
class TableRows extends RecursiveIteratorIterator
{
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v)
{
echo $v;
}
$conn = null;
echo "</table>"; //end table
//$sql = 'select BoatName, m.MarinaNum, SlipID from MarinaSlip s, Marina m where s.MarinaNum //= m.MarinaNum';
//echo '<form action="Assignment9.php" method="POST">';
//echo '</form>';
?>
[only prints 1 table and now formatting is messed up. The drop down and delete button should be first and then should display both tables][1]
任何幫助做到這一點,將不勝感激,謝謝提前
你在字符串中構造你的DELETE語句,但你永遠不會執行它。這會有所作爲。 –
那我該如何解決這個問題? – user3325133