1

この場合、フォームに 4 つのラジオ ボタンがあります。前のステップで、ユーザーは、選択されているさまざまな無線を含むオプション (A、B、C、D など) から選択することができます。例: A を選択すると、ラジオ 1 が選択されます。この選択は、mysql に次のように保存されます。

// If B:

Customer Prod Group Chosen
12345    1    1     0
12345    2    1     1
12345    3    1     0
12345    4    1     0

後で他の奇妙な IT システムで使用するために、選択されていないものを として保存する必要があります0。その後、ユーザーはこのページに再度アクセスできます。次に、データベースをチェックして、正しいラジオを としてマークしますchecked


問題

ユーザーは最初の選択を行ってはなりません。

ユーザーは(A、B...) を選択してはならないため、空の結果 (選択肢が見つからない) を返す SQL クエリに問題があります。この場合、SQL の結果を保存し、$pそれが 1 か 0/empty かをチェックします。

<input type="button" <?= empty($p[0])?'':'checked';?> />
<input type="button" <?= empty($p[1])?'':'checked';?> />
<input type="button" <?= empty($p[2])?'':'checked';?> />
<input type="button" <?= empty($p[3])?'':'checked';?> />

これにより、最初の 3 つの無線がチェックされます。

これに取り組む方法はありますか?1SQLエントリが(選択されている)、0(選択されていない)、またはまったく存在しないかどうかを何らかの方法で確認する必要があります。

SQL は単純なクエリです。

$sql = "
SELECT chosen 
FROM choices 
WHERE group = 1 
AND customer = 12345";

編集

var_dump($result)bool(false) と言います。これは正常ですか?

4

3 に答える 3

0

最初に、SQL での単純なクエリ:

$group = 1;
$customer = 12345;

// @de_nuit we have the same idea :-D
$sql = "SELECT `chosen` FROM `choices` WHERE `group` = '".$group."' AND `customer` = '".$customer."'";
$result = mysql_query($sql);

$p = array();
while($row = mysqli_fetch_array($result))
{
   $p[$row['prod']] = true;
}

たぶん、単に小さな関数を作成するだけですか?

function emptyCheck($p, $trick){
   // Your syntax to check
   if( isset($p[$trick]) ){
      if( $p[$trick] == true ){ echo "checked"; }
   }
}

次に使用します。

<input type="button" <?=emptyCheck($p,0)?> />

さて、これは古い方法です。詳細については、こちらをお読みください: PHP で mysql_* 関数を使用すべきではないのはなぜですか?

于 2013-07-25T08:22:38.997 に答える
0

どうですか

<input type="button" <?=(empty($p[0]) || $empty === '0')?'':'checked';?> />

(空かどうか、または値が 0 かどうかを確認してください - チェックされていません。)

または、それが 1 であるかどうかのみがチェックされる場合:

編集

if($p[0]) {
 ?>
   <input type="button" <?=($p[0] === '1') ? 'checked':'';?> />
 <?
 }else {
   <input type="button" />
 }
?>

(値が 1 かどうかを確認 - チェック済み)

于 2013-07-25T08:19:29.590 に答える