Jump to content

Help!! Why is my foreach displaying...


TeroYukio

Recommended Posts

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?

Link to comment
https://forums.phpfreaks.com/topic/266999-help-why-is-my-foreach-displaying/
Share on other sites

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

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

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.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.