在这种情况下,我在一个表单中有4个单选按钮。在前一步中,用户可以在包括不同单选按钮的选项(如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
。稍后用户可以再次访问此页面。然后我检查数据库,将正确的收音机标记为checked
。
问题
用户不得进行初始选择。
由于用户不能做出选择(a,B…),当sql查询返回空结果时(找不到任何选择),我会遇到问题。在这种情况下,我将sql结果保存到$p
,然后检查它是1还是0/空。
<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个收音机。
知道如何解决这个问题吗?我需要检查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)?> />
现在,这是一个老方法,阅读这里了解更多信息:为什么不应该';我在PHP中使用mysql_*函数吗?
怎么样
<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-已检查)
$sql = "SELECT `chosen` FROM `choices` WHERE `group` = '1' AND `customer` = 12345";
你必须在引号里加一个字符串。
如果您正在使用变量:
$sql = "SELECT `chosen` FROM `choices` WHERE `group` = '".$group."' AND `customer` = ".$customer;
编辑:
您可能有一个mysql_query();在某处添加模具方法。您可以查看您的请求是否引发了任何错误。如果是,请将它们张贴到您的答案中。
$query = mysql_query($sql) or die(mysql_error());