2016-09-11 64 views
0

我做了這個代碼將數據寫入到一個HTML表格:如何使用PHP將數據寫入多個HTML表格列?

<?php 
//DB Verbindung 
$con = mysqli_connect("localhost","root","","altislife"); 
$header = -1; 
// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$sql="SELECT * FROM players"; 

if ($result=mysqli_query($con,$sql)) 
{ 
    echo "<thead><tr>"; 
    while ($fieldinfo=mysqli_fetch_field($result)) 
    { 
    echo "<th>$fieldinfo->name</th>"; 
    $header++; 
    echo "$header"; 
    } 
    echo "</tr></thead>"; 
    mysqli_free_result($result); 
} 

if ($result=mysqli_query($con,$sql)) 
{ 
    echo "<tbody>"; 
    for ($i=0; $i < $header; $i++) { 
    while($sql = mysqli_fetch_array($result)) 
    { 
     echo "<tr><td>" . $sql[$i] . "</td><td> "; 
    } 
    } 
    echo "</tbody>"; 
} 

mysqli_close($con); 

的問題是,它只是填充的第一列。

然後我試圖這樣:

<?php 
//DB Verbindung 
$con = mysqli_connect("localhost","root","","altislife"); 
$header = -1; 
// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$sql="SELECT * FROM players"; 

if ($result=mysqli_query($con,$sql)) 
{ 
    echo "<thead><tr>"; 
    while ($fieldinfo=mysqli_fetch_field($result)) 
    { 
    echo "<th>$fieldinfo->name</th>"; 
    $header++; 
    echo "$header"; 
    } 
    echo "</tr></thead>"; 
    mysqli_free_result($result); 
} 

if ($result=mysqli_query($con,$sql)) 
{ 
    echo "<tbody>"; 
    while($sql = mysqli_fetch_array($result)) 
    { 
    for ($i=0; $i < $header; $i++) { 
     echo "<tr><td>" . $sql[$i] . "</td><td> "; 
    } 
    } 
    echo "</tbody>"; 
} 

mysqli_close($con); 

與此代碼的問題是相同的,與第一個例子。 任何人都可以看到我的錯誤?

+0

您的問題很難理解。你應該更詳細地解釋你的代碼和問題。 – Anselm

回答

0
if ($result=mysqli_query($con,$sql)) 
{ 
    $row = mysqli_fetch_assoc($result); 
    $html = '<table><tr><th>'.implode('</th><th>',array_keys($row)).'</th></tr>'; 
    do { 
     $html .= '<tr><td>'.implode('</td><td>',$row).'</td></tr>'; 
    }while($row = mysqli_fetch_assoc($result)); 
    $html .='</table>'; 
} 
echo $html; 

嘗試這種方式,並找出如何工作;-)

點使你的代碼:

  • tbodytable你弗里斯特例如沒有表標記
  • 表中的一行用<tr></tr>定義您的第二個示例未命中關閉標記
  • theadtbody是可選的,對HTML沒有影響

最後一點:它是unnesessary來運行SQL兩次來生成表格

implode($sep,$arr) 破滅需要太多指定參數和分隔符像<th></th>併合並數組的所有條目與被等:array('a','b','c')變得a<th></th>b<th></th>c

mysqli_fetch_assoc VS mysqli_fetch_array 秒給出類似[0=>'a',1=>'b']和第一個['name'=>'a','color'=>'b']

+0

只有一點:D它寫入列中,但有數字在之間:3如果你能解釋我,那將是很好的.implode – Azoni

+0

表標記在html文檔中^^我剛剛包含了這個腳本這些標籤。編輯:現在看起來不錯,但仍然有數字在 – Azoni

+0

@Azoni現在好點? – JOUM

0

您需要獲取您的數據庫中的整個記錄​​,而不是一個字段。嘗試fetch_assoc(請參閱http://www.w3schools.com/php/php_mysql_select.asp)。

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 
相關問題