여기에 대해 수십 개의 스레드를 살펴 보았지만 아직 해결책을 찾지 못했습니다.HTML 폼과 PHP를 사용하여 MySQL을 업데이트하십시오.
입력란에 데이터베이스 테이블 내용을 표시하는 양식을 만들었으며 입력란의 내용을 변경하고 제출하면 데이터베이스가 업데이트되어 있어야합니다.
<html>
<head>
</head>
<body>
<?php
$dbhost = '****';
$dbuser = '****';
$dbpass = '****';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('****');
$query = "SELECT * FROM anstalld";
$result = mysql_query($query) or die(mysql_error());
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<?php
while($row = mysql_fetch_array($result))
{
$namn = $row['namn'];
$mandag = $row['mandag'];
$tisdag = $row['tisdag'];
$onsdag = $row['onsdag'];
$torsdag = $row['torsdag'];
$fredag = $row['fredag'];
?>
<td width="100"></td>
<td><?=$namn?></td>
</tr>
<tr>
<td width="100">Mandag</td>
<td><input name="mandagid" type="text" value="<?=$mandag?>"></td>
</tr>
<tr>
<td width="100">Tisdag</td>
<td><input name="tisdagid" type="text" value="<?=$tisdag?>"></td>
</tr>
<tr>
<td width="100">Onsdag</td>
<td><input name="onsdagid" type="text" value="<?=$onsdag?>"></td>
</tr>
<tr>
<td width="100">Torsdag</td>
<td><input name="torsdagid" type="text" value="<?=$torsdag?>"></td>
</tr>
<tr>
<td width="100">Fredag</td>
<td><input name="fredagid" type="text" value="<?=$fredag?>"></td>
</tr>
<?php } ?>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="update" type="submit" id="update" value="Update">
</td>
</tr>
</table>
</form>
<?php
if(isset($_POST['update']))
{
$namn = $_POST['namnid'];
$mandag = $_POST['mandagid'];
$tisdag = $_POST['tisdagid'];
$onsdag = $_POST['onsdagid'];
$torsdag = $_POST['torsdagid'];
$fredag = $_POST['fredagid'];
$sql = mysql_query("UPDATE anstalld SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn'");
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
}
?>
</body>
</html>
폼은 데이터베이스 미세의 내용을 표시하지만 업데이트에 나는이 메시지를 얻을 :
당신은 당신의 SQL 구문에 오류가 있습니다를; 올바른 구문은 근처에서 사용하는 는 MySQL 서버 버전에 해당하는 설명서를 확인 '1'라인 (1) 나는이에 얻을 수있는 모든 도움을 주셔서 감사합니다
에서.
은'mysql_로 *'기능 ** 더 이상 ** 유지되지 않으며, 새로운 코드베이스에서 사용할 수 없습니다. 새로운 API를 위해 단계적으로 제거되고 있습니다. 대신 [PDO] (http://php.net/pdo) 또는 [MySQLi]와 함께 [** prepared statements **] (https://www.youtube.com/watch?v=nLinqtCfhKY)를 사용해야합니다. http://php.net/mysqli). –
입력 필드에 대해 항상 동일한 '이름'을 가진 다중 양식이 있으므로이 방법으로는 작동하지 않습니다. 또한 적어도 숨겨진 필드에'namn'을 넣기 위해 누락되었습니다. 그리고 당신은''' – djot
@djot를 여러 번 닫은 것을 놓쳤습니다. 멀티 폼을 가리켜 주셔서 감사합니다! 정적 이름을 사용하지 않고 입력 쿼리 상자에 UPDATE 쿼리를 가리키는 방법은 무엇입니까? – user2052849