如何显示表中的所有值

如何显示表中的所有值

问题描述:

我在代码波纹管中的employment_table中遇到了问题。我希望表格显示他们已经插入到表格中的所有作业。相反,它只显示最新的一个。显示这些值的值是$ ee(开始和结束日期的$ start和$ end)。再一次,问题是它不显示所有工作只是最后一个。有谁知道如何解决这个问题?是否要处理数组?在此先感谢如何显示表中的所有值

$employment_table = "no table"; 
    $sql = "SELECT * FROM history WHERE userID='$profile_id' AND type='job'"; 
    $query = mysqli_query($db_conx, $sql) or die(mysqli_error($db_conx)); 

    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 
    $h_id = $row["id"]; 
    $ee = $row["ee"]; 
    $htype = $row["type"]; 
    $unixstart = $row["start"]; 
    $unixend = $row["end"]; 
     $start = date("d/m/Y",$unixstart); 
     $end = date("d/m/Y",$unixend); 
    $employment_table = "<table>"; 
    $employment_table .= "<tr>"; 
    $employment_table .= "<th>Company Name</td>"; 
    $employment_table .= " <th>Start Date</td>"; 
    $employment_table .= "<th>End Date</td>"; 
    $employment_table .= "</tr>"; 
    $employment_table .= "<tr>"; 
    $employment_table .= "<td>".$ee."</td>"; 
    $employment_table .= "<td>".$start."</td>"; 
    $employment_table .= "<td>".$end."</td>"; 
    $employment_table .= "</tr>"; 
    $employment_table .= "</table>";  
} 

您正在覆盖每次在循环中的$employment_table变量。将<table></table>标签从循环中取出 - 例如

$employment_table = "<table>"; 
    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 
     $h_id = $row["id"]; 
     $ee = $row["ee"]; 
     $htype = $row["type"]; 
     $unixstart = $row["start"]; 
     $unixend = $row["end"]; 
      $start = date("d/m/Y",$unixstart); 
      $end = date("d/m/Y",$unixend); 

     $employment_table .= "<tr>"; 
     $employment_table .= "<th>Company Name</td>"; 
     $employment_table .= " <th>Start Date</td>"; 
     $employment_table .= "<th>End Date</td>"; 
     $employment_table .= "</tr>"; 
     $employment_table .= "<tr>"; 
     $employment_table .= "<td>".$ee."</td>"; 
     $employment_table .= "<td>".$start."</td>"; 
     $employment_table .= "<td>".$end."</td>"; 
     $employment_table .= "</tr>"; 

    } 
$employment_table .= "</table>"; 
+0

啊,是的,它的工作!感谢您的快速反应和解决方案:) – hsd 2013-03-19 21:47:25

+0

欢迎您随时将答案标记为已接受,如果它是:) – devrooms 2013-03-19 21:52:47

您在每次迭代时都覆盖$employment_table。 你也为每一行创建一个新表。

所以,做以下操作:

$employment_table = "<table>"; 
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) { 
    $h_id = $row["id"]; 
    $ee = $row["ee"]; 
    $htype = $row["type"]; 
    $unixstart = $row["start"]; 
    $unixend = $row["end"]; 
    $start = date("d/m/Y",$unixstart); 
    $end = date("d/m/Y",$unixend); 
    $employment_table .= "<tr>"; 
    $employment_table .= "<th>Company Name</td>"; 
    $employment_table .= " <th>Start Date</td>"; 
    $employment_table .= "<th>End Date</td>"; 
    $employment_table .= "</tr>"; 
    $employment_table .= "<tr>"; 
    $employment_table .= "<td>".$ee."</td>"; 
    $employment_table .= "<td>".$start."</td>"; 
    $employment_table .= "<td>".$end."</td>"; 
    $employment_table .= "</tr>"; 
} 
$employment_table .= "</table>";