尝试将多个项目POST到表单上的下一页提交PHP

时间:2015-04-14 19:35:27

标签: php jquery mysql

我是初学者,拥有基本的PHP知识。我有一个查询我的数据库的多个下拉菜单项列表。在提交时,我想显示从数据库中选择的项目的描述。

我的查询

$cat3=$_GET['cat3'];
if(isset($cat3) and strlen($cat3) > 0){
$quer3="SELECT DISTINCT subcat2, detail FROM subcategory2 where subcat_id=$cat3 order by subcat2"; 
}else{$quer3="SELECT DISTINCT subcat2 FROM subcategory2 order by subcat2"; }

在sumbit上发布了什么

echo "<select name='subcat3' ><option value=''>Select one</option>";
foreach ($dbo->query($quer3) as $noticia) {
echo  "<option value='$noticia[subcat2]'>$noticia[subcat2]</option>";
}
echo "</select>";

是否可以在subcat3中传递我的详细信息字段,或者我是否必须创建另一个名为details的表和另一个查询($ quer4)并通过subcat2 id链接它?

任何类似于项目搜索结果(ebay)的一般信息都会有所帮助。

1 个答案:

答案 0 :(得分:0)

请考虑使用占位符而不是将GET参数直接传递到SQL中 - 这里有一篇很好的帖子,我建议你看一下:

How can I prevent SQL injection in PHP?

但是 - 这应该有效(但并不理想)

SELECT DISTINCT subcat2
     , detail
     , ( SELECT cat3_descr 
           FROM subcategory3 
          WHERE subcat_id = ?
       ) AS cat3_descr
  FROM subcategory2
 WHERE subcat_id = ?
ORDER BY subcat2 ASC

这不完美,因为它必须进行内联子查询 - 最好在子类别2表上加入它,但我想你会遇到DISTINCT subcat2的一些GROUPing问题(假设它不是唯一的 - 在这种情况下,你需要对subcat2进行分组吗?)