2015-06-29 132 views
5

我想填充HTML表格,數據來自我的數據庫。在這裏,我在表格中存儲了「服務」。每個服務可能有多個圖像。所以填充表格時,應該有3個表cells一個用於「服務名稱」,其次用於「描述」,第三個用於圖像。用MySQL數據填充HTML表格(表格單元格的多個圖像)

這是我的SQL查詢樣子:

$prep_stmt = " SELECT s.id 
        , s.name 
        , s.description 
        , i.image 
        , i.image_path 
       FROM services s 
       LEFT JOIN images i ON i.service_id = s.id"; 

這是怎麼我的while這個樣子的:

while ($stmt->fetch()) {   
    $html = "<tr>\n"; 
    $html .= " <td><input type='checkbox'></td>\n";  
    $html .= " <td>\n";  
    $html .= "  <a href='' class='name'>{$name}</a>\n";  
    $html .= " </td>\n"; 
    $html .= " <td class='view_html'>{$description}</td>\n"; 
    $html .= " <td>\n";  
       --- My images should be display here ---- 
    $html .= " </td>\n"; 
    $html .= "</tr>\n";     

    //Add output to array 
    $output[] = $html; 
} 

我的問題是如何顯示一個表格單元格多張圖片?如果一個服務只有一個圖像,那麼我可以做到,但它有多個圖像,我不知道該怎麼做。

+0

第一家專賣店在數組中的值,然後使用該數組用於生成HTML表 –

+0

@FerozAkbar , 感謝您的評論。但我不知道該怎麼做。你能舉一個例子向我展示嗎?謝謝。 – user3733831

+1

我想要加入。拉取所有服務,然後在需要時在HTML創建時查詢所有圖像。就像你會得到每個ID多行,我不認爲你想要。 – chris85

回答

7

如下更改您的SQL代碼,並嘗試

$prep_stmt = " SELECT s.id 
        , s.name 
        , s.description 
        , (select group_concat(i.image_path,'/',i.image) from images i where i.service_id = s.id) as img 
       FROM services s"; 

然後用這個HTML代碼

while ($stmt->fetch()) {   
    $html = "<tr>"; 
    $html .= " <td><input type='checkbox'></td>";  
    $html .= " <td>";  
    $html .= "  <a href='' class='name'>{$name}</a>";  
    $html .= " </td>"; 
    $html .= " <td class='view_html'>{$description}</td>"; 

    $html .= " <td>"; 
    $img_array=explode(",",$img); 
    foreach($img_array as $im){ 
     if($im==''){ 
     $html .= " <img src='default.jpg'>"; 
     }else{ 
     $html .= " <img src='{$im}'>"; 
     } 
    } 
    $html .= " </td>"; 

    $html .= "</tr>";     

    //Add output to array 
    $output[] = $html; 
} 
+0

GROUP_CONCAT很酷。我不知道你可以像這樣返回一個數組。 – Codeguy007

+0

然後我的查詢只提取一行... – user3733831

+0

我用'INNER JOIN'試過了,但問題是一樣的 – user3733831

相關問題