2017-04-24 24 views
0

第1步:這是返回結果集的功能如何顯示在PHP結果數據表

public function getLogById($reg_id) { 

     $stmt = $this->conn->prepare("SELECT * FROM tracking_log WHERE registration_id = ? LIMIT 5"); 
     $stmt->bind_param("s", $reg_id); 

     if ($stmt->execute()) { 

      $result = $stmt->get_result()->fetch_all(); 
      $stmt->close(); 
      return $result; 
     } 
     else { 

      return false; 
     } 


    } 

步驟2:在這裏,我調用該函數

if(isset($_SESSION['registration_id'])){ 

    $id = $_SESSION['registration_id']; 

    $result = $logs->getLogById($id); 

    echo "<table>"; 

    foreach($tracking_result as $result) 
         { 
          foreach($result as $key => $value) 

          { 
           //echo "<li>$key : $value</li>"; 
           echo "<tr class=\"active\" role=\"row\">"; 
           echo "<td>Here I want to Display colum-1 of my DB-Table</td>"; 
           echo "<td>"Here I want to Display colum-3 of my DB-Table"</td>"; 
           echo "<td>Here I want to Display colum-4 of my DB-Table</td>"; 
           echo "</tr>"; 

          } 
         } 
    echo "<\table>"; 
} 

當我print_r($result);它顯示我這樣的結果

1 

35124 

2017-04-12 00:00:00 

30.102261 

-81.711777 

2 

35124 

2017-04-10 00:00:00 

30.102261 

-81.711457 

3 

35124 

2017-04-11 00:00:00 

30.063936 

-81.711307 

4 

35124 

2017-04-12 00:00:00 

30.102451 

-81.711957 

5 

35124 

2017-08-12 00:00:00 

30.102261 

-81.795777 

請幫我解決這個問題。

+0

解決什麼問題?你期望輸出是什麼? –

+0

你在哪裏聲明實際的表標籤? – clearshot66

+0

我想把表中的所有(5)記錄從表格中放入五行html表格中。而已。問題是將結果集格式化爲html表格,這正是我想要的。順便說一句,我是新手。幫助將不勝感激。感謝 – s4starb4boy

回答

0

你只需要一個foreach循環。你必須遍歷你的db $result

根據您的抓取風格,您可以在foreach循環中使用$row['some_column_name']$row[0]來訪問您的列。

foreach($result as $row) { 

    echo "<tr class=\"active\" role=\"row\">"; 
    echo "<td>".$row[0]."</td>"; 
    echo "<td>".$row[1]."</td>"; 
    echo "<td>".$row[2]."</td>"; 
    echo "<td>".$row[3]."</td>"; 
    echo "</tr"; 

} 
+0

他的循環結果'$ tracking_result'會使它非常糟糕,因爲我們看不到它是什麼......也許'undefined'。 –

+0

非常感謝@Yolo這就是我在尋找hwo來顯示錶中的數據... foreach($ result as $ row){ echo「」; echo「​​」。$ row [0]。「」; echo「​​」。$ row [1]。「」; echo「​​」。$ row [2]。「」; echo「​​」。$ row [3]。「」; echo「 s4starb4boy

0

我可以在這裏看到一些沉澱。我不明白你爲什麼要這樣做的第一件事情就是你的迴路$tracking_result。第二件事是錯誤的字符串"<td>"Here I want to Display colum-3 of my DB-Table"</td>"。無論如何,你需要做的第一件事就是在沒有任何PHP交互的情況下創建一個空的HTML示例,只是爲了看看你想要實現什麼。例如:

<table> 
    <tr> 
     <th>Header 1</th> 
     <th>Header 2</th> 
     <th>Header 3</th> 
    <tr/> 
    <tr> 
     <td>Row 1 Value 1</td> 
     <td>Row 1 Value 2</td> 
     <td>Row 1 Value 3</td> 
    <tr/> 
    <tr> 
     <td>Row 2 Value 1</td> 
     <td>Row 2 Value 2</td> 
     <td>Row 2 Value 3</td> 
    <tr/> 
    <tr> 
     <td>Row 3 Value 1</td> 
     <td>Row 3 Value 2</td> 
     <td>Row 3 Value 3</td> 
    <tr/> 
</table> 

這是一個簡單的HTML表格。如果你想與已知數據和已知頭填充它,你只需要專注於自己的行這樣的:

<table> 
    <tr> 
     <th>Header 1</th> 
     <th>Header 2</th> 
     <th>Header 3</th> 
    <tr/> 
    <?php foreach($results as $row) { ?> 
    <tr> 
     <td><?php echo $row['value1']; ?></td> 
     <td><?php echo $row['value2']; ?></</td> 
     <td><?php echo $row['value3']; ?></</td> 
    <tr/> 
    <?php } ?> 
</table> 

但是,如果你想與未知數據或標題來填充它,然後我們將開始更多的東西複雜。遵守此規則,您可以實現:

變量$ result必須是一個字符串索引數組。

這意味着我們可以將我們的Keys鍵作爲我們可讀的標題。有一個有用的PHP函數可以幫助我們:array_keys。有了這個,我們可以將這些標題作爲一個新的數組。很酷,對吧?但它只適用於在$results中至少有一行。如果它只是一個空陣列,我們什麼也得不到。所以我們需要在開始之前檢查它。

<?php 
    $isEmpty = empty($results); 
    if($isEmpty) { 
     echo "I'm sorry, we got nothing. :("; 
    } else { 
     $headers = array_keys($results[0]); // I'm assuming that all of them have the same indexes. 
?> 
<table> 
    <tr> 
     <?php foreach($headers as $header) { ?> 
     <th><?php echo $header; ?></th> 
     <?php } ?> 
    <tr/> 
    <?php foreach($results as $row) { ?> 
    <tr> 
     <?php foreach($headers as $header) { ?> 
     <td><?php echo $row[$header]; ?></td> 
     <?php } ?> 
    <tr/> 
    <?php } ?> 
</table> 
<?php 
    } 
?> 

我真的不推薦使用一般的東西,但就是這樣。

+0

謝謝@Kiko Garcia ...你也幫助我用不同的邏輯我得到/學習了一種新的技術。謝謝 – s4starb4boy

+0

不客氣的@ s4starb4boy良好的學習。 –