mysql 데이터베이스의 행에 해당하는 문자열을 표시하는 텍스트 상자가 여러 개 있습니다. 난 텍스트 상자에 입력하고 제출을 클릭하여 데이터베이스의 각 문자열을 변경할 수 있기를 원합니다.다양한 텍스트 상자로 mysql 데이터베이스 업데이트
그래서 DB에 연결 한 후 while 루프를 사용하여 텍스트 상자를 만듭니다.
<form action="<?php $self ?>" form method="post">
<?php
$query = "SELECT * FROM `table` ORDER BY table.ID DESC";
$result = @mysql_query($query) or die('
ERR: The database returned an unexpected error.
');
$num=mysql_numrows($result);
$change="";
$i=0;
while ($i < $num) {
$post=mysql_result($result,$i,"post");
$id=mysql_result($result,$i,"ID");
$ts=mysql_result($result,$i,"timeStamp");
$page = html_entity_decode($post);
$output = stripslashes($page);
if ($output != "") {
echo '<textarea name="' . $id . '" rows="4" cols="70">' . $output . '</textarea><div class="time"><font face="monospace">' . $ts . '</font></div>';
} //creates tables for each filled entry with a name corrsponing to its auto-increment id.
$i++;
}
?>
<input name="send" type="hidden" />
<div class="mod">
<p><input class="master" type="submit" value="Mod" /></p></div><!--submit button is called "Mod"-->
</form>
</body>
</html>
모든 것이 올바르게 표시됩니다. 데이터베이스에 텍스트가 포함 된 4 개의 행이있는 경우 4 개의 텍스트가 개별 텍스트 상자에 표시됩니다.
이제 사용자가 텍스트 상자에 입력 한 내용으로 데이터베이스의 텍스트를 바꾸기를 원합니다. 이것은 내가 시도한 코드이다. 그것은 아무것도하지 않습니다.
<?php
$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"ID");
$post=mysql_result($result,$i,"post");
if (!isset($_POST[$id])) {
$_POST[$id] = "";
}
$change = $_POST[$id];
mysql_query("UPDATE 'database'.'table' SET 'post' = '$change' WHERE 'table'.'ID' ='$id';");
$i++;
}
기본적으로 루프는 테이블의 모든 행에 대해 한 번 실행됩니다. 모든 텍스트 상자에 대해 ID가 '1'인 '게시'의 경우 $ _POST [1], ID가 '2'인 '게시'의 경우 $ _POST [2] 등 '데이터베이스' '테이블'을 업데이트해야합니다. 대신 아무 일도 발생하지 않습니다. 도움이 될 것입니다.
준비된 문구를 사용하십시오. 코드가 안전하지 않습니다. – Kurt