私はまだ基礎を学んでいるので、私と一緒に裸にしてください。既存のエントリを更新する(MySQL PHP HTML)
私はオーナーの名前を取得し、彼の行動のコメントを入力するオプションを与えるページを作ろうとしています。適切な選択された人物のタイムスタンプと共にコメントを送信する。
私は閲覧形式で「所有者」の名前を取得できますが、コメントのすべての列が更新されるため、コメントを送信するときに問題があります。選択したエントリだけに追加するのではなく、 id 'issue)フィールドとタイムスタンプが正しくキャプチャされない場合は、ブランクフィールドを含む新しい行をタイムスタンプ値とともに追加します。
これは私がこれまで持っているものです。
<?php
function renderForm($id, $owner, $attendance, $comments, $log, $error)
{
?>
<!DOCTYPE html>
<html>
<head>
<title>Log</title>
</head>
<body>
<?php
if ($error != '')
{
echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
}
?>
<form action="" method="post">
<input type="hidden" name="id" value="<?php echo $id; ?>"/>
<div>
<strong>OWNER: </strong><?php echo $owner; ?><br/><br/>
<strong>ATTENDANCE: </strong><select name="attendance" id="attendance">
<option value=""><?php echo $status; ?></option>
<option value = "Present">Ongoing</option>
<option value = "Absent">Closed</option>
</select><br/><br/>
<div style="position: absolute; top: 200px; left: 300px; width: 210px; height: 125px;">
<strong>COMMENTS: </strong><br/>
<?php
// connect to the database
$conn = mysqli_connect("localhost", "root", "");
$result = mysqli_query($conn, "SELECT * FROM arc.log WHERE attendance IN ('Present', 'Absent')", MYSQLI_USE_RESULT)
or die(mysql_error());
echo "<table border='1' cellpadding='10'>";
echo "<font color=\"white\"><tr><th>TIMESTAMP</th><th>COMMENTS</th></tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo '<td>' . $row['timestamp'] . '</td>';
echo '<td>' . $row['comments'] . '</td>';
echo "</tr>";
}
// close table>
echo "</table>";
?></div>
<div style="position: absolute; top: 8px; left: 700px; width: 210px; height: 125px;">
<strong>COMMENTS: </strong> <br/><textarea id="comments" name="comments" rows="10" cols="50"></textarea></div>
</div>
<br/>
<br/>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
<?php
}
$conn = mysqli_connect("localhost", "root", "");
if (isset($_POST['submit']))
{
if (is_numeric($_POST['id']))
{
$comments = mysqli_real_escape_string($conn, $_POST['comments']);
$timestamp_history = date("Y-m-d h:i:s");
if ($comments == '')
{
$error = 'ERROR: Please fill in all required fields!';
renderForm($remarks, $error);
}
else
{
mysqli_query($conn, "UPDATE arc.log SET comments='$comments'")
or die(mysql_error());
$query = "INSERT INTO `ticket`(`timestamp`) VALUES ('$timestamp')";
$result = mysqli_query($conn, $query);
}
}
else
{
echo 'Error1';
}
}
else
{
if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0)
{
$id = $_GET['id'];
$result = mysqli_query($conn, "SELECT * FROM arc.log WHERE id=$id")
or die(mysql_error());
$row = mysqli_fetch_array($result);
if($row)
{
$owner = $row['owner'];
$attendance = $row['attendance'];
$comments = $row['comments'];
renderForm($id, $owner, $attendance, $comments, '');
}
else
// if no match, display result
{
echo "No results!";
}
}
else
{
echo 'Error2';
}
}
?>
のMySQL:
は、事前にありがとうございます。あなたはPOSTパラメータを脱出し、盲目的にこれをコピーしてはいけません