【问题标题】:Using checkboxes to retrieve a foreign key, name, and value from mysql使用复选框从 mysql 中检索外键、名称和值
【发布时间】:2016-12-26 20:10:14
【问题描述】:

我正在开发一个比较系统,就像 verizon 无线比较系统一样。我正在从数据库中检索 30 部手机,我需要使用复选框来选择要相互比较的手机。我有一个表格,其中包含电话名称和可以正常工作的图像 URL。我的问题是如何检索 prodFK、名称和值,如下所示,以便我可以将每部手机相互比较。我真的希望有人有足够的耐心来帮助我。这是我显示电话的代码。

    $data = mysql_query("SELECT * FROM product") 
or die(mysql_error());
$numrows = (mysql_num_rows ($data));


//loop for rows
if($numrows >0)
{
    echo "<table width = 100% border = '1' cellspacing = '2' cellpadding = '0'>";

//loop for columns
    $position = 1;
    while ($phones = mysql_fetch_array($data)){
        if($position == 1){
            echo "<tr>";}
            echo " <td>"."<img src='".$phones['pictureURL']."' title='".$phones['name']."'/><br /><input type='checkbox' title='".$phones['name']."'/></td> ";
            if($position == 6)
            {
                echo "</tr> "; $position = 1;
            }
            else{
                $position++;
            }
        }

$end = "";
if($position != 1){
for($z=(6-$position); $z>0 ; $z--){
$end .= "<td></td>";
}
$end .= "</tr>";
}

echo $end."</table> ";

【问题讨论】:

  • 如果我理解正确,您可以通过在 IMG(或 INPUT)元素中添加指定 db 值的属性来识别另一部手机,例如:
    ";
  • 我想显示每部手机从数据库中获得的每个属性。然后从中创建一个表格,使其类似于任何电话比较网站。

标签: php mysql checkbox


【解决方案1】:

您的input 没有名称或值:

<input type='checkbox' title='".$phones['name']."'/>

你需要给它一个名字和一个值,然后你就会知道他们选择了什么:

"<input type='checkbox' title='".$phones['name']."' name='selection[]' value='".
$phones['id']."'/>"

然后,您可以访问$_REQUEST['selection'](这将是一个数组)以查看他们选择了哪些手机:

if(isset($_REQUEST['selection']) && is_array($_REQUEST['selection'])) {
  $where = array();
  foreach($_REQUEST['selection'] as $id) $where[] = "`id`=".intval($id);
  $where = join(' OR ',$where);
  $data = mysql_query("SELECT * FROM product WHERE $where") or die(mysql_error());
  $numrows = (mysql_num_rows ($data));
  // Display a table of all selected phones' specs
} else {
  $data = mysql_query("SELECT * FROM product") or die(mysql_error());
  $numrows = (mysql_num_rows ($data));
  // Display a selection of all phones to select and compare
}

【讨论】:

  • 我相信这是我需要的 SQL,但不确定如何使其动态化:select product.id, productAttr.* from product LEFT JOIN productAttr ON product.id=productAttr.prodFK where product. id=29;
  • 使用我的WHERE 子句:-) 检查我的答案,你知道我是如何构建WHERE 子句的吗?
  • 啊,我知道它现在是如何工作的了。那么你在哪里//显示所有选定手机规格的表格,我应该回显什么?我知道我需要一个表格标签,但不确定要回显哪个变量。
  • @Marc 我也不确定...回显您要显示的信息?您的数组键将与productAttr 表的列相同。我建议从var_dump 开始,然后从那里开始。
猜你喜欢
  • 1970-01-01
  • 2010-11-05
  • 2015-03-19
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
  • 2018-01-16
相关资源
最近更新 更多