여기 아마추어 질문에 대해 유감스럽게 생각합니다.하지만 내 인생에서 왜 데이터베이스에 업데이트를 제출하지 않는지 이유를 디버깅 할 수없는 양식을 만들었습니다.내 양식이 데이터베이스를 업데이트하지 않는 이유는 무엇입니까?
예는 여기에 있습니다 : www.dominicharrison.co.uk/projects/Portfolio/admin
코드 :
이<?php
require_once('../_inc/glob.php');
$query = mysql_query("SELECT * FROM `pages`");
echo "<table border=\"1\"><tr><td>ID</td><td>Name</td><td>Location</td><td>Edit</td><td>Delete</td></tr>";
while($array = mysql_fetch_assoc($query)) {
echo "<tr><td>" . $array['id'] . "</td><td>" . $array['name'] . "</td><td>" . $array['location'];
echo "</td><td><a href=\"?editid={$array['id']}\">Edit</a></td>";
echo "<td><a href=\"?delete={$array['id']}\">Delete</a></td></tr>";
}
echo "</table>";
// Defines the edit and delete functions
$edit = mysql_real_escape_string($_GET['editid']);
$delete = mysql_real_escape_string($_GET['delete']);
// Edit function!
$query2 = mysql_query("SELECT * FROM `pages` WHERE `id` = '{$edit}'");
$array2 = mysql_fetch_assoc($query2);
if($edit != "") {
?>
<p>
<form method="POST" action="">
<input name="name" value="<?php echo $array2['name']; ?>" type="text"><br />
<input name="location" value="<?php echo $array2['location']; ?>" type="text"><br />
<input type="submit" value="Edit!">
</form></p>
<?php
if($_POST['submit'])
{
$name = mysql_real_escape_string($_POST['name']);
$location = mysql_real_escape_string($_POST['location']);
mysql_query("UPDATE `pages` SET id = '{$edit}', name = '{$name}', location = '{$location}' WHERE id = '{$edit}'");
}
}
쿼리가 성공하는지 확인하십시오. 그렇지 않은 경우 mysql_error()에 유용한 오류 메시지가 표시됩니다. 또한 mysqli_ 또는 PDO를 사용하여보다 안전한 코드를 작성하는 데 도움이 될 것입니다. – andrewsi
답례로 이상한 질문 일 수도 있습니다. 정확히 어디에 제출합니까? – dmaij
@dmaij - 작업을 비워두면 양식이 자체 URL로 다시 제출됩니다. – andrewsi