前のページのURLからIDを渡して、そのIDの行のデータベース値を更新しようとしています。私は近くにいるように感じる。私は更新クエリに特定のID番号を追加するときに値librarian_fname
を更新することができますが、コードを介してその値を渡すと、使用時に更新されないため、その値を取得してはいけません。id = '$id'
。私が間違っていることを確信していない。これが完璧でない場合、私はまだ学んでいるので、私を許してください。ID一致のあるPHP UPDATEデータ
<?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を学習していないという特別な理由はありますか?あなたが学ぶ必要があるものの1つは、あなたのプログラムをデバッグする方法です。あなたのプログラムをデバッグするようにインターネットに依頼することは、効率的でもスケーラブルでもありません。 SQLステートメントにインクルードされる前に$ idの値をエコーアウトし、SQLステートメントをエコーして、コードがそのポイントに達しているかどうかを調べることをお勧めします。 https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – spencer7593
PHPが初めてのので、PDO/mysqliを見ていきます。リンクありがとうございました。私はまた、デバッグすることを学んで、私のページの上部にIDをエコーしようとしましたが、SQLステートメントに渡されていません。 –
$ sql = "UPDATEテーブルの設定librarian_fname = $ librarian_fname WHERE id = $ id";それを置き換えてください –