0

我正在尝试检索存储在未知数量的 mySQL 数据库行中的数据并使用 HTML 显示它们。目前我可以显示一行的数据。

每行都有一个唯一的 id 编号,我打算通过将此编号与 variable 进行比较来迭代counter。但它会给我留下以 HTML 显示结果的问题。目前,我只是在回显包含行中数据的变量。但是,我要创建的是一个 HTML 列表,该列表的长度取决于表中的行数。

这是我当前用于从数据库中检索一行的 PHP 代码:

$sql = "SELECT * FROM project_tasks WHERE project_name='$proj_name' AND task_id='$counter'"; 
$query = mysqli_query($db_conx, $sql);
$row = $query->fetch_assoc();
$task_id = $row["task_id"];
$proj_name = $row["project_name"];
$task_name = $row["task_name"];
$task_importance = $row["task_importance"];
$task_description = $row["task_description"];
$task_deadline = $row["task_deadline"];
$task_members = $row["task_members"];
$task_budget = $row["task_budget"];

目前,我只是使用以下代码在 HTML 中显示一些结果:

<div id="inner_container">
            <?php echo "$task_id $proj_name $task_name $task_deadline"; ?>
            </div>
4

2 回答 2

1
$sql = "SELECT * FROM project_tasks WHERE project_name='$proj_name' AND task_id='$counter'"; 
$query = mysqli_query($db_conx, $sql);

while($row = $query->mysqli_fetch_assoc()) {

  $task_id = $row["task_id"];
  $proj_name = $row["project_name"];
  $task_name = $row["task_name"];
  $task_importance = $row["task_importance"];
  $task_description = $row["task_description"];
  $task_deadline = $row["task_deadline"];
  $task_members = $row["task_members"];
  $task_budget = $row["task_budget"];

  echo "$task_id $proj_name $task_name $task_deadline";
}
于 2013-09-21T12:17:11.020 回答
1

由于您已经构建了一个关联数组,因此fetch_assoc您需要做的就是遍历该数组。http://php.net/manual/en/mysqli-result.fetch-assoc.php上的 OO 示例应该可以满足您的需求。一个简单的例子:

$sql = "SELECT * FROM project_tasks WHERE project_name='$proj_name' AND task_id='$counter'"; 
$query = mysqli_query($db_conx, $sql);

echo '<div id="inner_container">';
    while ($row = $query->fetch_assoc()) {
        $proj_name = $row["project_name"];
        $task_name = $row["task_name"];
        $task_deadline = $row["task_deadline"];

        echo "$task_id $proj_name $task_name $task_deadline";
    };

    /* free result set */
    $row->free();

echo '</div>;
于 2013-09-21T12:17:44.780 回答