2011-01-18 158 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']; 

} 
相關問題