How can you alternate row colors in an HTML table when outputting MySQL data in PHP without manually assigning colors to each row?

To alternate row colors in an HTML table when outputting MySQL data in PHP without manually assigning colors to each row, you can use a simple conditional statement to toggle between two CSS classes for odd and even rows. By applying these classes dynamically, you can achieve the desired alternating row colors without the need to manually assign colors to each row.

```php
<?php
// Assume $result contains the MySQL data fetched from the database

echo '<table>';
$i = 0;
while($row = mysqli_fetch_assoc($result)) {
    $class = ($i % 2 == 0) ? 'even' : 'odd';
    echo '<tr class="' . $class . '">';
    foreach($row as $key => $value) {
        echo '<td>' . $value . '</td>';
    }
    echo '</tr>';
    $i++;
}
echo '</table>';
?>
```

In the above code snippet, we use the `$i` variable to keep track of the row number and apply the CSS classes 'even' and 'odd' based on whether the row number is even or odd. This approach allows us to alternate row colors in the HTML table dynamically without manual color assignments.