В таблице есть только одна запись, поэтому почему она работает так, как будто у меня 5 таблиц с одной буквой каждая
$query = "Select * from click_tracker"; $result = mysql_query($query); $all_clicks = mysql_fetch_array($result); foreach($all_clicks as $click){ print " <table border=\"1\"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>{$click['url_destination']}</td> <td>{$click['count']}</td> </tr> </table>"; } 
здесь возвращена таблица
 <table border="1"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>2</td> <td>2</td> </tr> </table> <table border="1"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>2</td> <td>2</td> </tr> </table> <table border="1"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>h</td> <td>h</td> </tr> </table> <table border="1"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>h</td> <td>h</td> </tr> </table> <table border="1"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>5</td> <td>5</td> </tr> </table> <table border="1"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>5</td> <td>5</td> </tr> </table> 
         mysql_fetch_array извлекает одну строку в виде массива.  Когда вы пытаетесь перебрать этот результат с вашим foreach , вы фактически просматриваете все столбцы строки, которую вы вернули (дважды, фактически, потому что по умолчанию mysql_fetch_array возвращает массив с числовыми и индексированными ключами!) 
Если вы хотите получить все строки в результирующем наборе (и вы, скорее всего, сделаете это), вам нужно использовать цикл while, чтобы продолжать выборку строк до тех пор, пока их больше нет:
 $all_clicks = array(); while ($row = mysql_fetch_array($result)) { $all_clicks[] = $row; } 
  а затем, когда вы перебираете $all_clicks , каждая итерация будет иметь полную строку. 
mysql_fetch_array () возвращает строки, похоже, что ваш foreach перебирает поля в строке, а не строки в результирующем наборе.
  Кажется, вы печатаете несколько таблиц.  Я не думаю, что это то, что вы намереваетесь.  Вам нужно распечатать теги открытия и закрытия таблицы и заголовки вне цикла.  Вы также должны вызвать mysql_fetch_array() в цикле, а не один раз. 
 print " <table border=\"1\"> <tr> <th>Location</th> <th>Visit Count</th> </tr>"; $query = "Select * from click_tracker"; $result = mysql_query($query); while ($click = mysql_fetch_array($result)) { print " <tr> <td>{$click['url_destination']}</td> <td>{$click['count']}</td> </tr>"; } print "</table>"; 
  Вы также должны рассмотреть возможность экранирования данных в $click , но я не знаю, как выглядят ваши данные, поэтому я не уверен, что помещать в область только между операциями while и print . 
Вам нужно сделать это так:
 $query = "Select * from click_tracker"; $result = mysql_query($query); while($click = mysql_fetch_assoc($result)) { 
  сделайте print_r($all_clicks) и проверьте, что результат – это то, что вы ожидаете от него. 
вам действительно не нужно использовать foreach, если есть только один результат.
  $query = "Select * from click_tracker"; $result = mysql_query($query); $all_clicks = mysql_fetch_array($result); print " <table border=\"1\"> <tr> <th>Location</th> <th>Visit Count</th> </tr> <tr> <td>{$all_clicks['url_destination']}</td> <td>{$all_clicks['count']}</td> </tr> </table>";