GytisK GytisK - 1 month ago 8
PHP Question

PHP+MySQL Printing a MySQL array into table

I have a query function (code below) that I use to read the DB and I would like to know how do I loop the print to output -ALL- the results into a table which is something like this:

enter image description here

I used this to get it:

$visa=$DB->query("SELECT fname,lname,email FROM users");
echo '<table BORDERCOLOR=black>';
?>
<tr>
<th>Name</th><th>LastName</th><th>E-Mail</th>
</tr>
<?php
echo "<td>";
echo $visa[0]['fname'];
echo "</td>";
echo "<td>";
echo $visa[0]['lname'];
echo "</td>";
echo "<td>";
echo $visa[0]['email'];
echo "</td>";


The query function:

function query($querytext) {
$rs = mysql_query($querytext, $this->_link);
if($this->_debug) {
$this->addDebugMessage("\t<tr>\n\t\t<td class=\"debug_nr\">".$this->_queryCount++."</td>\n\t\t<td class=\"debug_queInfo\"><b>Query: (".@mysql_num_rows($rs).")</b></td>\n\t\t<td>" . htmlspecialchars($querytext) . "</td>\n\t</tr>\n");
if(mysql_error() != '') {
$this->addDebugMessage("\t<tr>\n\t\t<td class=\"debug_nr\">".$this->_queryCount++."</td>\n\t\t<td class=\"debug_queInfo\"><b>Error #".mysql_errno($this->_link)." :</b></td>\n\t\t<td>" . htmlspecialchars(mysql_error($this->_link)) . "</td>\n\t</tr>\n");
}
}
if($rs) {
$num_rows = @mysql_num_rows($rs);
if($num_rows) {
if($num_rows > 0) {
$rsarray = array();
while($line = mysql_fetch_array($rs , MYSQL_ASSOC)) {
array_push($rsarray, $line);
}
mysql_free_result($rs);
return $rsarray;
} else {
return false;
}
} else {
if(mysql_affected_rows($this->_link) > 0) {
return true;
} else {
return false;
}
}
} else {
return false;
}
}

Answer

Use for or foreach loop:

<?php foreach($visa as $v) {
echo "<td>";
echo $v['fname'];
echo "</td>";
echo "<td>";
echo $v['lname'];
echo "</td>";
echo "<td>";
echo $v['email'];
echo "</td>";
}

In your code, $visa is an array of query results, and to display all the values form it you just have too loop over that array