Телефон: +7 (926) 245-03-63

Как вывести данные в PHP из таблицы MySQL?

Следующая статья: Какие типы данных поддерживает MySQL?

php вывод таблицы mysql, вывод данных из таблицы php, php таблица, php mysql таблицы

Как вывести данные в PHP из таблицы MySQL?
Как вывести данные в PHP из таблицы MySQL?

Содержание

PHP и MySQL

Так как статья оказалось очень популярной, то решил отрерайтить ее и сделать более доступной для новичков.

Даю сразу рабочий пример товарищам страждающим результата в первую очередь, которым глубоко по барабану суть до дела, вот готовый пример:

<?php
$sdd_db_host='';// ваш адрес где находится, хостится ваша база данных
$sdd_db_name='';// Имя базы данных с которой вы хотите работать, так как их может быть множество
$sdd_db_user='';// логин доступ к базе данных
$sdd_db_pass='';// пароль доступа к базе данных
@mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером
@mysql_select_db($sdd_db_name);// переключаемся на нужную нам базу данных
$result=mysql_query('SELECT * FROM `table_name`');// делаем выборку из таблицы
while($row=mysql_fetch_array($result))// берем результаты из каждой строки
{ echo '<p>Запись id='.$row['id'].'. Текст: '.$row['text'].'</p>';// выводим данные
}
?>

Для четкости понимания читаем статью про разницу в кавычках в php, чтобы так сказать не наломали дров в будущем в Интернет программировании, да и вообще в основах.

Cоздание таблицы mysql через php и другие подробности

Теперь рассказываю более подробно для любознательных, где и что куда совать.

Итак, давайте создадим простенькую таблицу, чтобы было легче понимать материал без лишнего фанатизма и умных слов. Ниже приведен скрипт, который легко можно выполнить в закладке SQL панели управления phpmyadmin, для этого достаточно всего лишь скопировать текст и нажать кнопку выполнить:

CREATE TABLE `u220100_5000`.`table_name` (
`id` INT NULL AUTO_INCREMENT COMMENT 'ID номер записи',
`text_` VARCHAR(500) NULL COMMENT 'Текстовое поле',
PRIMARY KEY (`id`)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
COMMENT='Экспериментальная таблица';

Теперь в нашей базе данных (БД) есть таблица с именем `table_name`

Несколько важных замечаний.

  • возьмите в привычку сразу заполнять комментарии к полям, это позволит вам выработать привычку комментирования и впоследствии не будет проблем при разработке больших и динамических полей, так как я сомневаюсь в том, что в вы наизусть будете помнить 10 тысяч полей и для чего и на кой каждое поле нужно;
  • забудьте про все ранее существующие кодировки и работайте только в UTF. Преимущества UTF кодировки перед остальными очевидны, читайте информацию по ссылке.
  • все поля пишите либо только маленькими, либо только большими буквами. К сожалению PHP придирчив к регистру и в случае, если регистр будет скакать, то многие скрипты и поля могут не выводиться у вас, либо выводиться, но не корректно.

Вот как будет выглядеть уже совсем готовый код html страницы:

<html>
<body>
<?php
$sdd_db_host='';// ваш адрес где находится, хостится ваша база данных
$sdd_db_name='';// Имя базы данных с которой вы хотите работать, так как их может быть множество
$sdd_db_user='';// логин доступ к базе данных
$sdd_db_pass='';// пароль доступа к базе данных
@mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером
@mysql_select_db($sdd_db_name;// переключаемся на нужную нам базу данных
$result=mysql_query('SELECT * FROM `table_name`');// делаем выборку из таблицы
while($row=mysql_fetch_array($result))// берем результаты из каждой строки
{ echo '<p>Запись id='.$row['id'].'. Текст: '.$row['text'].'</p>';// выводим данные
}
?>
</body>
</html>

Проблема с UTF-8 кодировкой

Как показала статистика, это настолько популярная проблема, что я решил вывести ее в отдельную главу. Но на самом деле нет никаких проблем, только сразу после процедуры соединения с базой данных добавте три строчки, выделенные внизу, отвечающие за переключение кодировки выводимых результатов, вот пример:

@mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером
@mysql_select_db($sdd_db_name);// переключаемся на нужную нам базу данных

// в какой кодировке получать данные от клиента
@mysql_query('set character_set_client="utf8"');

// в какой кодировке получать данные от БД для вывода клиенту
@mysql_query('set character_set_results="utf8"');

// кодировка в которой будут посылаться служебные команды для сервера
@mysql_query('set collation_connection="utf8_general_ci"');

Многие употребляют строчку:

mysql_query('set NAMES utf8'); 

Это действует, но в следующих версиях MySQL данный вызов будет отменен. Об этом заявлено на сайте MySQL, поэтому крайне не рекомендуюется использовать данную форму переключения кодировки.

Если вы совсем потеряли рассудок и решили вернуться к программированию в 90 годы и мертвую кодировку cp1251 считаете своим идеалом то, просто замените UTF на соответствующие значения cp1251 и cp1251_general_ci.

Неприятно, но факт, люди которые занимаются программированием, особенно в последнее время, совершенно разучились читать сопроводительную документацию, где большая часть проблем описана.

Основные проблемы и хитрости работы с таблицами в MySQL через PHP

Вот некоторые хитрости которые также часто возникают у новичков:

Зачем нужен знак @ перед командами mysql?

Этот знак подавляет вывод информации об ошибках на PHP движке. Так как статья для новичков, то до корректной обработки ошибок вы дойдете еще не скоро, поэтому чтобы вас не грузить морем лишней информации и ни что не отвлекало я ставлю этот знак.

Что можно сделать по сложнее?

По сложнее есть целый раздел по PHP и MySQL на этом сайтеи также расписаны основные и самые распространенные SQL запросы, которых для началу на первых год изучения вам вполне будет достаточно на все ваши нужды.

Спасибо diego_lott26 за указание ошибки в коде.

Интересное в интернете: Уход за рулонными шторами шторы рулонного типа требуют особого ухода.