Ok. I think that this can be easily solved by going back to basics ...
Let S = {1,2,3,4,5} . In this case S is a set composed of the natural numbers from 1 to 5 inclusive.
Whenever you run the query in mysql, the result is a pointer to S ... which in this case is being assigned to $row.
Now, every time you call the mysql_fetch_array you are passing it the pointer $row. The function returns a single row in the form of an array. Looking back at S, this would be 1 . The next time you call mysql_fetch_array, it will get 2 and so on. Usually we make ONE call to mysql_fetch_array for each iteration of the loop. So given S, the loop would have to run 5 times.
What you are doing is calling mysql_fetch_array two times in each iteration of the while loop. Essentially , you are tellin mysql give me row 1 and row 2 the first time you go through the loop, and then you ask for row 3 and row 4. .. ... What do you think happens the third time the while look is executed ? you ask for row 5 and row 6 .... but there is no row 6!!!
So, there is only one result set ,S , but you are calling for two members at a time!!!!
In reality, what you needed was this .....
<?php
session_start();
include 'include/config.php';
// This script will display articles, short description with a link to MORE...
$query = "SELECT * FROM articles";
$result = mysql_query($query) or exit(mysql_error());
$i = 0;
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
if ($i% 2 == 0) {
$div = '<div class="artleft">' ;
$side = ' left side ';
}
else {
$div = '<div class="artright">' ;
$side = ' right side ';
}
echo "$div This is the <b>$side</b> of the articles display </div>";
$i++;
}
?>
now please, try to be a little more polite to the people who are freely giving up their time to help you.