Intereting Posts
Разбить одну строку текста без каких-либо различимых точек останова в PHP php / mysql добавить строки вместе, чтобы получить общее количество Вытяните выделенные изображения из папки – покажите изображение + имя файла (разделите часть имени файла + расширение файла) Вставить Игнорировать – есть ли способ узнать, проигнорирован ли оператор? MYSQL передача параметра в удаленный модальный в бутстрап 3 Сессия PHP уничтожается после изменения пользовательского агента Ошибка 501 путем отправки почты с помощью Swift-почтовой программы Объединить значения флажка с помощью php mysql Запускать страницу PHP каждый час автоматически – без использования заданий Cron mysql_ping зависает с Amazon RDS Преобразование временной метки в часовые пояса Идентификатор последней записи PDO всегда правильный? Создание PDF с цифровой подписью совместное использование файлов cookie через домены на одном хосте XPATH не работает над HTML

почему он петляет больше, чем однажды … я что-то не хватает

В таблице есть только одна запись, поэтому почему она работает так, как будто у меня 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>";