SQL查询只返回1行

时间:2015-07-07 16:56:10

标签: php sql mysqli

我正在开发一个php项目,用户可以从表单中选择汽车的品牌和型号,这将触发搜索适用于该特定组合的产品。当我在SQL中运行查询,并且有多个产品时,我得到多行。但是当我尝试使用PHP显示这些结果时,我只得到1行。你知道我做错了什么吗?这是代码:

Set rs = db.OpenRecordset("MOVIMIENTOS") 

非常感谢你的帮助

修改 - 评论中来自OP文件http://standtek.com.mx/test/screenshots.docx的内容

因此,用户将从下拉列表中选择汽车的品牌和型号。第一个查询在表中查找make和model: enter image description here

然后我使用PARTMAKE列中的信息作为第二个查询的参考

以下是phpmyadmin中的查询示例,它显示了4行: enter image description here

由于某种原因,我当前的脚本只显示1行: enter image description here

这是我想要在结果中显示的内容: enter image description here

1 个答案:

答案 0 :(得分:0)

使用JOIN查询,您可以返回所有行 -

$query = "SELECT products.* 
          FROM products
          JOIN partmakes 
          ON (
             products.PARTNO = partmakes.PARTMAKE1 
             OR 
             products.PARTNO = partmakes.PARTMAKE2 
             OR 
             products.PARTNO = partmakes.PARTMAKE3 
             OR
             products.PARTNO = partmakes.PARTMAKE4) 
          WHERE partmakes.MAKE = '$_POST[make]' 
          AND partmakes.MODEL ='$_POST[model]'";

$results = mysqli_query($cnx, $query);

echo "These are the products for your car:<br />";

echo "<table><tr><th>PARTNO</th><th>TITLE</th><th>PRICE</th></tr>";

while ($row = mysqli_fetch_assoc($results)){
    echo "<tr><td>{$row[PARTNO]}</td><td>{$row[TITLE]}</td><td>{$row[PRICE]}</td></tr>";
}
echo "</table>";

确保清理您的$_POST用户数据。

您可以在sqlFiddle中看到JOIN查询 - http://sqlfiddle.com/#!9/754feb/4