In your code, you're fetching the row ONCE, and printing it out 3 times! So there should be another fetching inside the for loop, too, right? Should make sense...
But your method expects the number of rows to be a multiple of 3. But what if it's not? Here's something for you to consider (i.e. it won't work as it is)
$max = 3;
$current = 1;
while ($row = mysql_fetch_array($result)) {
print $row['Alias'] . ' ';
if ($current % $max == 0) {
print "<br />\n";
}
$current++;
}
The % operator is the modulus operator, which returns the remained of a division. e.g.
5 % 3 == 2
10 % 3 == 1
6 % 3 == 0
Diego