Question: I have a loop that should display a summary of all MySQL results. It does this by determining how may results there will be and then loops that many times. So if there are 43 results that match my query, instead of displaying all 43 results, it only displays the first result 43 times. Please help! Here's my code:

```
if (empty($res)) {

echo 'No results found';

} else if($num>1){

    echo "<b>".$num_rows."<b> results found...<br>";

    while ($res = mysql_fetch_assoc($result)) {

    echo "<a href='#'>{$res['dealer']}</a><br>";

    }

} else {

echo "<table border=\"0\"><tr><td colspan=\"2\"><span class=\"dealer\">" . $res['dealer'] . "</span></td></tr><tr><td><span class=\"label\">Pin: </span><span class=\"inf\">" . $res['pin'] . "</span></td><td><span class=\"label\">OB CODE: </span><span class=\"ob\">" . $res['ob'] . "</span></td></tr><tr><td><span class=\"label\">Program Director:</span></td><td><span class=\"inf\">" . $res['contact'] . "</span></td></tr><tr><td valign=\"top\"><span class=\"label\">Address:</span></td><td><span class=\"inf\">" . $res['address'] . "<br>" . $res['city'] . ", " . $res['state'] . "<br>" . $res['zip'] . "</span></td></tr><tr><td><span class=\"label\">Dealer Phone:</span></td><td><span class=\"inf\">" . $res['phone'] . "</span></td></tr><tr><td><span class=\"label\">Codes Valid on:</span></td><td><span class=\"inf\">" . $res['website'] . "</span></td></tr></table>";

}

```

Thanks a lot in a advance!

Answer: 
That's because you've only fetched the first row (when you did `$res = mysql_fetch_assoc($result);`). What you're trying to do is actually unnecessary: `mysql_fetch_assoc()` will automatically move the data pointer ahead every time it runs. What you can do instead (and is in fact common practice) is this:

```
//...
while ($res = mysql_fetch_assoc($result)) {
    echo "<a href='#'>{$res['dealer']}</a><br />";
}
//...

```

On a side note, the `mysql_*` functions are soon to be deprecated. You can use either `mysqli` or `PDO` instead; if you're a lazy bum with a lot of code to switch (like me), you can use the `mysqli` procedural functions - they're almost identical to the original `mysql_*` functions.
You have to do this *inside* your loop:

```
$res = mysql_fetch_assoc($result);

```

...as that only pulls the first result otherwise. Here's the correct way to do it:

```
while($res = mysql_fetch_assoc($result)){
    echo "<a href='#'>".$res['dealer']."</a><br>";
    i++;
}

```

Cheers