2011-01-18 159 views
0

我希望有一个小窍门,让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手风琴 - 所以它显示在单页上不成问题)

回答

2

独特的制造商

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>'; 
} 

再一次,如果你可以更清楚一点,可以得出一个更好的解决方案。

+0

谢谢布拉德,对不起,应该已经明确了最终的结果。基本上我想要一个制造商的大名单,当你点击一个制造商扩展显示所有可用的模型。您的代码完美地显示了其制造商下的所有型号,但仍然没有理解代码层次结构(即找出放置h1手风琴接头的位置) – Jamie 2011-01-19 00:43:17

2

如果你想从你的数据库中获取所有的结果和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']; 

} 
相关问题