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 Quote 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>'; } } Quote 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.