PHP - 产品比较表只显示一列

时间:2013-11-13 14:39:47

标签: php sql

我正在尝试比较产品并在表格中显示结果。我有一个表单页面和一个TABLE页面,问题是当我从两个下拉列表中选择FORM页面时,它只会在表格中显示一列并返回一个包含一个数组的多维数组不是两个数组相同。
当我从from和submit中选择两个不同的值时,会显示两个选择。
如果用户选择相同的产品/ ID,如何避免使用一个空列?

我在考虑加载第二次下拉并从列表中减去第一次下拉选择的值?我不知道该怎么做或者可能有更简单的方式,如表单验证。有人能告诉我怎么样?感谢

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 = $_POST[id1]; 
$id2 = $_POST[id2];

$statement = $dbh->prepare("select * from products_specs where id IN ($id1,$id2)");
$statement->execute(array(':id1' => $id1, ':id2'=> $id2));
$statement->setFetchMode(PDO::FETCH_ASSOC);
$subrows = $statement->fetchAll();

print_r($subrows);
$yes = '<img src="images/icons/yes.png" width="16" height="16" />';
$no = '<img src="images/icons/no.png" width="16" height="16" />';?>

<table >
<thead>
<tr>
<th width="100"></th>
<th width="275"><?php echo $subrows[0][image]; ?></th>
<th width="275"><?php echo $subrows[1][image]; ?></th>
</tr>
<tr text-align="center">
<th width="100"></th>
<th class="centered-cell1"><font color="#990000"><?php echo  "ID"." ".$subrows[0][id]; ?></th>
<th class="centered-cell1"><font color="#990000"><?php echo  "ID"." ".$subrows[1][id]; ?></th>
</tr>
</thead>
<tbody>
<tr>
<td > Capacity </td>
<td align="center"><?php echo  $subrows[0][capacity]; ?> </td>
<td align="center"><?php echo  $subrows[1][capacity]; ?> </td>
</tr>
<tr>
<td > Memory </td>
<td align="center"><?php echo  $subrows[0][mem]; ?> </td>
<td align="center"><?php echo  $subrows[1][mem]; ?> </td>
</tr>

... ECT

1 个答案:

答案 0 :(得分:0)

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

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

让用户根据需要将产品与自身进行比较。