For each loop that does not echo data (mysql_fetch_assoc? Problem)

advertisements

Hello and Good Morning,

I am still learning PHP and for some reason my script will not post any data in my foreach loop. Any Idea why? The emailRow Echos out fine but I am going to remove My code is below:

<?php 

include 'includes/header.php';

$accountUser = array();
$upgradeEmail = $_GET['currEmail'];
$emailQuery = "SELECT fbID, firstName, lastName FROM users WHERE emailOne='".$upgradeEmail."' AND authLevel=0";

<?php echo $emailRow['fbID']; ?>
<?php echo $emailRow['firstName']; ?>
<?php echo $emailRow['lastName']; ?>

 while($emailRow = mysql_fetch_assoc($emailQuery, $conn))
 {
    $accountUser[]=$emailRow;
 }
?>
 <table>
<?php foreach($accountUser as $emailData) { ?>

<tr><td> <?php emailData['fbID']; ?> </td><td><?php emailData['firstName']; ?></td><td><?php emailData['lastName']; ?></td></tr>

<?php } ?>
</table>


You have constructed your SQL query in $emailQuery, but never executed it. Call mysql_query(), and pass its result resource to mysql_fetch_assoc().

$emailQuery = "SELECT fbID, firstName, lastName FROM users WHERE emailOne='".$upgradeEmail."' AND authLevel=0";
$result = mysql_query($emailQuery);
if ($result)
{
  while($emailRow = mysql_fetch_assoc($result, $conn))
  {
     $accountUser[]=$emailRow;
  }
}
else // your query failed
{
   // handle the failure
}

Please also be sure to protect your database from SQL injection by calling mysql_real_escape_string() on $upgradeEmail since you're receiving it from $_GET.

$upgradeEmail = mysql_real_escape_string($_GET['currEmail']);