neridaj Posted September 25, 2008 Share Posted September 25, 2008 Hello, I'm trying to loop through a table to retrieve a specific field for all records in the table but my script is only returning the data for the first entry in the table. I've used this script before but I guess I'm missing something. function get_projects() { // if(!valid_project_name($_GET['pn'])) // die("Invalid project name!"); // else $projectname = $_GET['pn']; // connect to db $mysqli = new mysqli('host', 'user', 'pass', 'db'); if(mysqli_connect_errno()) { printf('Connection failed: %s\n', mysqli_connect_error()); exit(); } echo '<table align="center" bgcolor="#cccccc" border="0" cellpadding="0" cellspacing="0" width="100%">'; // query poject info if($result = $mysqli->query("SELECT * FROM websites")) { $row = $result->fetch_array(MYSQLI_ASSOC); foreach($row as $key=>$value) { $img = strtolower(str_replace(" ", "", $row['siteName'])) .'.jpg'; echo '<tr><td><img class="floatright" src="images/'. $img .'"></td></tr>'; } // free result set $result->close(); } echo '</table>'; // var_dump($row); $mysqli->close(); } Thanks for any help, Jason Link to comment https://forums.phpfreaks.com/topic/125867-foreach-not-looping-through-all-data/ Share on other sites More sharing options...
.josh Posted September 25, 2008 Share Posted September 25, 2008 Your foreach(..) loop loops through each column in the row, but the $result->fetch_array(...) only grabs one row at a time from the result source. You need to wrap all that in a loop; example: while ($row = $result->fetch_array(MYSQLI_ASSOC)) { foreach($row as $key=>$value) { $img = strtolower(str_replace(" ", "", $row['siteName'])) .'.jpg'; echo '<tr><td><img class="floatright" src="images/'. $img .'"></td></tr>'; } } Link to comment https://forums.phpfreaks.com/topic/125867-foreach-not-looping-through-all-data/#findComment-650855 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.