1
データベースから複数のチェックボックスを含むフォームを生成しようとしています。今は配列の最後のエントリだけが表示されます。チェックされているものが1つしかないと仮定した場合、それは機能しますが、複数の場合、配列の最後のエントリだけがチェックされて表示されます。どんな助けでも大歓迎です。ありがとう!データベースから複数のPHPチェックボックスをチェック
<?php
include "DBconnect.php";
$staffId = $_REQUEST["ID"];
$query=" select listCode from staffLabels
where staffId = $staffId";
$result=$mysql->query($query);
while($row=$result->fetch_assoc()){
//in_array()check if value is in array
$b_checked='';
$d_checked='';
$x_checked='';
$f_checked='';
$c_checked='';
if($row['listCode'] =="b") {$b_checked='checked';}
elseif($row['listCode'] =="d") {$d_checked='checked';}
elseif($row['listCode'] =="x") {$x_checked='checked';}
elseif($row['listCode'] =="f") {$f_checked='checked';}
elseif($row['listCode'] =="c") {$c_checked='checked';}
}
echo '<input type="checkbox" name="listCode[]" value="b" '.$b_checked.' >b';
echo '<input type="checkbox" name="listCode[]" value="d" '.$d_checked.' >d';
echo '<input type="checkbox" name="listCode[]" value="x" '.$x_checked.' >x';
echo '<input type="checkbox" name="listCode[]" value="f" '.$f_checked.' >f';
echo '<input type="checkbox" name="listCode[]" value="c" '.$c_checked.' >c<br /><br />';
?>
を試してみてください。各ループは変数の前の内容を消去し、最後のものだけを保持します... – FirstOne
しかし、あなたがしようとしていることを実行する良い方法があります... – FirstOne
あなたは[SQL Injections](http: /php.net/manual/en/security.database.sql-injection.php)。 MySQLiやPDOを使用している場合( 'mysql_ *'関数は廃止予定です)、[Prepared Statements](http://php.net/manual/en/mysqli.quickstart.prepared- statements.php) –