lolcatIV
lolcatIV

Reputation: 35

How to display the content of more then one SQL database row

I am trying to retrieve the data stored in an unknown number of mySQL database rows and display them using HTML. At the moment I can display data from one row.

Each row has a unique id number, I was planning to iterate through by comparing this number to the variable counter. But it would then leave me with the issue of displaying the results in HTML. At the moment I am just echoing variables that contain data from the rows. However what I want to create is a HTML list that increases in length depending on how many rows are in the table.

Here is my current PHP code for retrieving a row from the database is:

$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"];

At the moment I am just displaying some of the results in HTML using this code:

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

Upvotes: 0

Views: 183

Answers (2)

Jason
Jason

Reputation: 15335

Since you have built an associative array using fetch_assoc all you need to do is loop through that array. The OO example on http://php.net/manual/en/mysqli-result.fetch-assoc.php should get you what you need. A quick example:

$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>;

Upvotes: 1

David Houde
David Houde

Reputation: 4778

$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";
}

Upvotes: 1

Related Questions