TeroYukio Posted August 13, 2012 Share Posted August 13, 2012 This is my code: <?php include('header.php'); $sql = mysql_query("SELECT * FROM users")or die(mysql_error()); $rows = mysql_fetch_array($sql); foreach($rows as $row){ echo "$row[id]"; echo "<br>"; } mysql_close(); ?> This is what it displays: 5 5 2 2 In my database currently there are three "id"s: 5, 6, and 7. What is going on? Quote Link to comment https://forums.phpfreaks.com/topic/266999-help-why-is-my-foreach-displaying/ Share on other sites More sharing options...
requinix Posted August 13, 2012 Share Posted August 13, 2012 $rows is just one row from the result, not all of them. All you're looping over is the columns in that row. And actually your $sql variable is named a bit off too: it's the results of the query, not the SQL itself. Try this structure: while($row = mysql_fetch_array($sql)) { echo $row["id"], " "; } Quote Link to comment https://forums.phpfreaks.com/topic/266999-help-why-is-my-foreach-displaying/#findComment-1368909 Share on other sites More sharing options...
TeroYukio Posted August 13, 2012 Author Share Posted August 13, 2012 Thanks, works as intended: <?php include('header.php'); $sql = ("SELECT * FROM users ORDER BY id") or die(mysql_error()); $res = mysql_query($sql); while($rows = mysql_fetch_array($res)){ echo "$rows[id]"; echo "<br>"; } mysql_close(); ?> Displays: 5 6 7 Quote Link to comment https://forums.phpfreaks.com/topic/266999-help-why-is-my-foreach-displaying/#findComment-1368910 Share on other sites More sharing options...
Christian F. Posted August 13, 2012 Share Posted August 13, 2012 You're still using the wrong syntax to reference a array index, read requinix' code again. A bit more closely this time. Also, the mysql_* () line of functions are deprecated, and as such you'll need to use MySQLi or PDO instead. Quote Link to comment https://forums.phpfreaks.com/topic/266999-help-why-is-my-foreach-displaying/#findComment-1369001 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.