我正在從上一頁的URL傳遞一個id,然後嘗試更新該id行中的數據庫值。我覺得我很接近。當我添加到更新查詢中時,我可以更新值librarian_fname
特定的ID號碼,但是當我嘗試通過代碼傳遞該值時,它不能選擇它,因爲當我使用id = '$id'
時它不會更新。不知道我做錯了什麼。如果這不是完美的,我仍然在學習如此原諒我。PHP更新數據,其中有ID匹配
<?php
$id = $_GET['id'];
echo $id;
?>
<?php
// This function will run within each post array including multi-dimensional arrays
function ExtendedAddslash(&$params)
{
foreach ($params as &$var) {
// check if $var is an array. If yes, it will start another ExtendedAddslash() function to loop to each key inside.
is_array($var) ? ExtendedAddslash($var) : $var=addslashes($var);
unset($var);
}
}
// Initialize ExtendedAddslash() function for every $_POST variable
ExtendedAddslash($_POST);
$librarian_fname = $_POST['librarian_fname'];
$id = $_POST['id'];
?>
<?php
if(isset($_POST['add'])) {
$dbhost = 'localhost';
$dbuser = '';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn) {
die('Could not connect: ' . mysql_error());
}
$sql = "UPDATE table SET librarian_fname = '$librarian_fname' WHERE id = '$id'";
mysql_select_db('Events');
$result = mysql_query($sql, $conn);
if(! $result) {
die('Could not enter data: ' . mysql_error());
}
mysql_close($conn);
header("Location: search.php");
}
else {
?>
<?php
// define variables and set to empty values
$librarian_fname = $id = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$librarian_fname = test_input($_POST["librarian_fname"]);
$id = test_input($_POST["id"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER[" PHP_SELF "]);?>">
<legend><b>Appointment Topic</b></legend>
<input type="hidden" name="id" value="<? echo $id; ?>">
<label for="librarian_fname">First Name <em>*</em></label>
<input type="text" name="librarian_fname" size="50" required="no" validateat="onsubmit" message="Please enter your first name."> input name = "add" type = "submit" id = "add" value = "Submit">
</form>
<?php
}
?>
是否有一個具體的原因,你的學習是使用不推薦使用的mysql_接口函數(在PHP 7中刪除),而不是學習PDO或mysqli?你需要學習的一件事是如何*調試*你的程序。請求互聯網調試您的程序*不*效率高或可擴展。我建議你在$ id包含在SQL語句之前回顯$ id的值,回顯SQL語句,並確定代碼是否達到這一點。 https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – spencer7593
我是PHP新手,所以我會看看PDO/mysqli。謝謝你的鏈接。我正在學習調試,並試圖在頁面頂部回顯出該ID,但它並未傳遞到SQL語句中。 –
$ sql =「UPDATE table SET librarian_fname = $ librarian_fname WHERE id = $ id」;替換它 –