有没有一种简单的方法来重复一个PHP的MySQL查询?
问题描述:
我希望有一个小窍门,让php能够为我节省100个拷贝>粘贴>更改编号 - 感谢您的关注!有没有一种简单的方法来重复一个PHP的MySQL查询?
我在MySQL数据库中有一个相对较大的数据集。
只是有两列:模型(约7000唯一项)和制造商(约100个独特的,即模型只从100个不同的制造商)
目前(好,因为我写的很慢,重复的方式),我有一个巨大的线沿线的PHP数据库查询的列表:
$结果= mysql_query( “SELECT * FROM产品WHERE制造商= '3M'”); ($ row = mysql_fetch_array($ result)){
echo $ row ['manufacturer']。 “”。 $行[ '模型']; }
我在做什么工作,但是有没有办法让所有的制造商名单,然后运行在列表上面的PHP?
或者,也许有什么不同,我没有想过?
感谢堆,
(实际输出做成一个javascript手风琴 - 所以它显示在单页上不成问题)
答
独特的制造商
SELECT manufacturer
FROM products
GROUP BY manufacturer
但我对于最终结果而言,你并不积极。你能否详细说明一下,我会提供一个更简洁的答案?
编辑这应该做你想找的东西(或者至少是你玩的好基地)。这将把制造商作为手风琴的标题,然后列出其中的模型。
$sql = "SELECT * FROM products ORDER BY manufacturer,product";
$lastMfg = null;
if (($result = mysql_query($sql)) !== false)
{
echo '<div id="accordion">';
while (($row = mysql_fetch_array($result)) !== false)
{
if ($row['manufacturer'] != $lastMfg)
{
if (!is_null($lastMfg))
echo '</div>';
echo '<h3><a href="#">'.$row['manufacturer'].'</a></h3>';
echo '<div>';
$lastMfg = $row['manufacturer'];
}
echo '<p>'.$row['model'].'</p>';
}
echo '</div></div>';
}
else
{
echo '<p>MySQL Error: Unable to fetch products</p>';
}
再一次,如果你可以更清楚一点,可以得出一个更好的解决方案。
答
如果你想从你的数据库中获取所有的结果和1个查询,你可以简单地获取所有没有where子句和制造商排序,所以你可以在php中“分组”行。我明白这是你想要的,无论如何你应该分页。
$result = mysql_query("SELECT * FROM products ORDER BY manufacturer ASC;");
$last_manufacturer = false;
while ($row = mysql_fetch_array($result)) {
if ($last_manufacturer !== $row['manufacturer']) {
//we got a different manufacturer since we ordered in alphabetical order
$last_manufacturer = $row['manufacturer'];
#... do something like put an separator between manufacturers
# in this example we put a title, you should put the accordion markup or something similar
echo "<h1> Manufacturer:", $row['manufacturer'] ,"</h1>";
}
echo $row['manufacturer'] . " " . $row['model'];
}
谢谢布拉德,对不起,应该已经明确了最终的结果。基本上我想要一个制造商的大名单,当你点击一个制造商扩展显示所有可用的模型。您的代码完美地显示了其制造商下的所有型号,但仍然没有理解代码层次结构(即找出放置h1手风琴接头的位置) – Jamie 2011-01-19 00:43:17