0

次のようなフォーム入力ボックスで DB の内容を表示するページがあります。

<?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?><input name="namn[]" type="hidden" value="<?=$namn?>"></td>
</tr>
<tr>
<td width="100">Mandag</td>
<td><input name="mandag[]" type="text" value="<?=$mandag?>"></td>
</tr>
<tr>
<td width="100">Tisdag</td>
<td><input name="tisdag[]" type="text" value="<?=$tisdag?>"></td>
</tr>
<tr>
<td width="100">Onsdag</td>
<td><input name="onsdag[]" type="text" value="<?=$onsdag?>"></td>
</tr>
<tr>
<td width="100">Torsdag</td>
<td><input name="torsdag[]" type="text" value="<?=$torsdag?>"></td>
</tr>
<tr>
<td width="100">Fredag</td>
<td><input name="fredag[]" 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>

この後、入力ボックスの内容を変更して送信ボタンを押すことで、さまざまな DB エントリを更新できるようにコードを追加しました。

<?php

if(isset($_POST['update']))
{

$namnValue = $_POST['namn'];
$mandagValue = $_POST['mandag'];
$tisdagValue = $_POST['tisdag'];
$onsdagValue = $_POST['onsdag'];
$torsdagValue = $_POST['torsdag'];
$fredagValue = $_POST['fredag'];
print_r($mandagValue);

$sql = "UPDATE anstalld SET mandag = '$mandagValue', tisdag = '$tisdagValue', onsdag = '$onsdagValue', torsdag = '$torsdagValue', fredag = '$fredagValue' WHERE namn = '$namnValue'";
echo $sql;

$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";

}

mysql_close($conn);

?>

DBは更新されていますが、問題は私のすべての

$namnValue = $_POST['namn'];
$mandagValue = $_POST['mandag'];
$tisdagValue = $_POST['tisdag'];
$onsdagValue = $_POST['onsdag'];
$torsdagValue = $_POST['torsdag'];
$fredagValue = $_POST['fredag'];

入力ボックスからの実際の値ではなく、結果の「配列」を返しています。したがって、私のSQL UPDATEは最終的に

「UPDATE anstalld SET mandag = 'Array', tisdag = 'Array', onsdag = 'Array', torsdag = 'Array', fredag​​ = 'Array' WHERE namn = 'Array'"

これについて私が得ることができるどんな助けにも感謝します、ありがとう。

4

2 に答える 2

1

入力フィールドの名前のため

<input name="onsdag[]" type="text" value="<?=$onsdag?>">

単一の値ではなく、配列を送信しています。

前の回答が示唆するように名前を変更します

<input name="onsdag" type="text" value="<?=$onsdag?>">

または配列としてアクセスする

$namnValue = $_POST['namn'][0];
$mandagValue = $_POST['mandag'][0];
...
于 2013-09-25T12:57:01.623 に答える
1

[]入力名を削除する必要があります。

<td><input name="onsdag" type="text" value="<?=$onsdag?>"></td>

それ以外の

<td><input name="onsdag[]" type="text" value="<?=$onsdag?>"></td>
                       ^^

それ以外の場合、それらは配列と見なされます。

于 2013-09-25T12:53:27.077 に答える