2013-06-28 178 views
0

我試圖顯示汽車列表的規格:重量,長度,寬度。
一切都將是一個foreach內部,一段時間裏面,但我不能正常運行......foreach裏面while while循環不工作

我的表
汽車:
idcar:1 /寬度:30 /長度:10 /重量:300
12 /重量:210
idcar:3 /寬度:20 /長度:21 /重量:230
idcar:4 /寬度:40 /長度:11 /重量:210

和規格表:
idspec:1規格:寬度
idspec:2規格:重量
idspec:3規格:長度

而我的代碼

    $idcar = $_GET['idcar']; 
    $resultcarfirst = mysqli_query($connecDB,"select * from products order by (case idcar when $idcar then 0 else idcar end), $idcar asc"); 
    $resultspec = mysqli_query($connecDB, "SELECT * FROM specs ORDER BY idspec"); 
    
    while($rowspec = mysqli_fetch_array($resultspec)){ 
         echo '<div><h1>'.$rowspec["spec"].'</h1><br/>'; 
    
         $arraycars = array(); 
         while($rowcar = mysqli_fetch_array($resultcarfirst)) 
         $arraycars[] = $rowcar; 
         foreach($arraycars as $rowcar){ 
          echo '<p>idcar:'.$rowcar['idcar'].' '.$rowspec['spec'].': '.$rowcar[$rowspec['spec']].'</p>'; 
         } 
    
         echo '</div><br/>'; 
        } 
    

    輸出將是:
    寬度
    idcar:1寬度:30
    idcar :2 width:20
    idcar:3 width:20
    idcar:4 width:40

    重量
    idcar:1的重量:300
    idcar:2重量:210
    idcar:3重量:230
    idcar:4重量:210

    長度
    idcar:1長度:10
    idcar:2長度:12
    idcar:3長度:21
    idcar:4長度:11

    謝謝你,我希望我是清楚的。

    +0

    你提到了你想要的輸出,但是你實際得到的輸出是什麼? – fvu

    +0

    我想,你的代碼缺少一些大括號來完成你想要做的事情。 – Aralicia

    +0

    @fvy im對不起,在我的輸出中,我無法顯示每輛車的所有規格。只有與汽車的第一個規格,然後都是空的。我清楚了嗎?謝謝。 – santyas

    回答

    2

    WHY你會這樣做嗎?

    所有你需要的是...

    $arraycars = array(); 
        while($rowcar = mysql_fetch_array($resultcarfirst)){ 
        echo '<p>idcar:'.$rowcar['idcar'].' '.$rowspec['name'].': '.$rowcar[$rowspec['spec']].'</p>'; 
        $arraycars[] = $rowcar;} 
    

    除非林完全誤解你想做什麼?

    另外...如果你想拉sspecs只爲那輛車....與該while循環,那麼你必須改變你的查詢接受第一個while循環的變量,如果你知道我的意思

    +0

    對不起,我不理解 – santyas

    +0

    我需要重複,在第一個例子中,我的分貝許多規範。第二步顯示所有規格的汽車,具體取決於此。即:如果寬:所有寬度值的汽車,如果高:所有高價值的汽車。 – santyas

    +0

    然後,你需要或者在mysql中進行連接,或者在你循環發送查詢時......無論哪種方式 – KyleK