PHP-仅显示一列的产品比较表

PHP-仅显示一列的产品比较表,php,sql,Php,Sql,我试图比较产品并在表格中显示结果。我有一个表单页面和一个表页面,问题是当我在表单页面中从两个下拉列表中选择相同的产品(值)时,它将只显示在表一列中,并返回一个多维数组,其中包含一个数组而不是两个相同的数组。当我从“发件人”和“提交”中选择两个不同的值时,将显示两个选择如果用户选择相同的产品/标识,如何避免出现一个空列? 我在想也许加载第二个下拉列表,然后从列表中减去第一个下拉选择的值?我不知道该怎么做,也许有一种更简单的方法,比如表单验证。有人能告诉我怎么做吗?谢谢 FORM.html <

我试图比较产品并在表格中显示结果。我有一个表单页面和一个表页面,问题是当我在表单页面中从两个下拉列表中选择相同的产品(值)时,它将只显示在表一列中,并返回一个多维数组,其中包含一个数组而不是两个相同的数组。
当我从“发件人”和“提交”中选择两个不同的值时,将显示两个选择
如果用户选择相同的产品/标识,如何避免出现一个空列?

我在想也许加载第二个下拉列表,然后从列表中减去第一个下拉选择的值?我不知道该怎么做,也许有一种更简单的方法,比如表单验证。有人能告诉我怎么做吗?谢谢

FORM.html

<?php
$products_dropdown = "select * from product_dp" ;
$statement = $dbh->prepare($products_dropdown);
$statement->execute();
$result_dp = $statement->fetchAll();?>

<form action="table.html" method="post">
<fieldset class="custimg">
<legend>Product Comparison</legend>
<div class="row">
<div class="large-block-grid-4"><br /></div>
<div class="large-block-grid-4">
<select name="id1" id="id1" class="small button secondary dropdown radius">`
<?php foreach ($result_dp as $row){
echo "<option value='".$row['id']."'>".$row['sku']."</option>";}?>
</select>
</div>
<div class="large-block-grid-4">
<select name="id2" id="id2" class="small button secondary dropdown radius">
<?php foreach ($result_dp as $row){
echo "<option value='".$row['id']."'>".$row['sku']."</option>"; }?>
</select>
<input type="submit" value="Compare" class="tiny button secondary" />
</div>
</div>

产品比较

`
Table.html

$id1=$\u POST[id1];
$id2=$_POST[id2];
$statement=$dbh->prepare(“从产品规格中选择*,其中id位于($id1,$id2)”);
$statement->execute(数组(':id1'=>$id1':id2'=>$id2));
$statement->setFetchMode(PDO::FETCH_ASSOC);
$subrows=$statement->fetchAll();
打印(子文件);
$yes='';
$no=“”;?>
容量
记忆

ect…

非常简单的解决方案。执行查询后,请使用代码:

if (!isset($subrows[1]))
    $subrows[1] = $subrows[0];

如果用户需要,让他们将产品与自身进行比较。

您是否应该准备“从产品规格中选择*,其中id位于(:id1,:id2)”而不是$id1,$id2。有一段时间没有做PDO,所以可能是错的。@MattHerbstritt是的,你是对的。这不是主题的问题,而是一个严肃的注射。谢谢!!我知道使用表单验证更好,但我尽量不使用javascript。。干杯,塞奇!
if (!isset($subrows[1]))
    $subrows[1] = $subrows[0];