在本例中,我在一个表单中有 4 个单选按钮。在前面的步骤中,用户可以在包括不同 radio 的选项(如 A、B、C、D)之间进行选择。例如:选择 A 则选择 radio 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
。
稍后用户可以再次访问该页面。然后我检查数据库以将正确的 radio 标记为checked
。
问题
The user must not make the initial choice.
由于用户不得做出选择(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 个 radio 。
知道如何解决这个问题吗?
我不知何故需要检查 sql 条目是 1
(选择)、0
(未选择)还是根本不存在。
SQL 只是一个简单的查询:
$sql = "
SELECT chosen
FROM choices
WHERE group = 1
AND customer = 12345";
编辑:
var_dump($result)
表示 bool(false)。这正常吗?
最佳答案
首先,简单的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)?> />
现在,它是旧方法,阅读此了解更多信息:Why shouldn't I use mysql_* functions in PHP?
关于PHP/MySQL : Handling empty sql result in php array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852568/