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/空。

<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)说布尔(假)。这是正常的吗?

4

3 回答 3

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 回答
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
$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());
于 2013-07-25T08:45:13.710 回答