PHP/MySQL : Handling empty sql result in php array

标签 php mysql arrays

在本例中,我在一个表单中有 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/

相关文章:

php - 从数组中删除元素

php - 写入 webroot 目录之外的文本文件

php - 无法使用 codeIgniter 修复错误

php - 如何将 mysql 中的行乘以表单中的数量?

javascript - 将 javascript Canvas 路径保存到数据库中的正确方法

arrays - 为什么合并 M 个排序数组的复杂度是线性时间?

php - if else 重定向到另一个页面的语句

mysql - 使用逗号分隔值选择 mysql 列

mysql - MySQL View 的自动递增序列号

java - 从一个数组中取出组元素并将它们随机放入另一个数组中