http://sd-company.su/article/php/mysql_table_view | |
PHP И MYSQLUPD: 2013-10-07. С начало 2013 года, рекомендуется работать строго через библиотеку MySQLi. 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); // выполнение SQL запроса и получение всех записей (строк) из таблицы `table_name` $result=mysql_query('SELECT * FROM `table_name`'); // получение результатов из каждой строки while ($row=mysql_fetch_array($result)) { // вывод данных echo '<p>Запись id='.$row['id'].'. Текст: '.$row['text_'].'</p>'; }// /while ?> Для четкости понимания читаем статью про разницу в кавычках в php, чтобы так сказать не наломали дров в будущем в Интернет программировании, да и вообще в основах. В отдельных статьях расписаны другие основы работы с базами данных и не только MySQL. СОЗДАНИЕ ТАБЛИЦЫ MYSQL ЧЕРЕЗ PHP И ДРУГИЕ ПОДРОБНОСТИТеперь рассказываю более подробно для любознательных, где и что куда совать. Итак, давайте создадим простенькую таблицу, чтобы было легче понимать материал без лишнего фанатизма и умных слов. Ниже приведен скрипт, который легко можно выполнить в закладке SQL панели управления phpmyadmin, для этого достаточно всего лишь скопировать текст и нажать кнопку выполнить: CREATE TABLE `base_name`.`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` Несколько важных замечаний.
Вот как будет выглядеть уже совсем готовый код 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`'); // выполнение SQL запроса и получение всех записей (строк) из таблицы `table_name` while ($row=mysql_fetch_array($result)) { // вывод данных echo '<p>Запись id='.$row['id'].'. Текст: '.$row['text_'].'</p>'; }// /while ?> </body> </html> ПРОБЛЕМА С UTF-8 КОДИРОВКОЙКак показала статистика, это настолько популярная проблема, что я решил вывести ее в отдельную главу. Но на самом деле нет никаких проблем, только сразу после процедуры соединения с базой данных добавьте три строчки, выделенные внизу, отвечающие за переключение кодировки выводимых результатов, вот пример: // установка связи с сервером (@ подавление возможных ошибок) @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass); // переключение на нужную базу данных @mysql_select_db($sdd_db_name); // установка кодировки, при помощи которой отправляются данные от PHP скрипта в MySQL @mysql_query('set character_set_client="utf8"'); // установка кодировки, в которой выдаются данные от БД MySQL в PHP скрипт @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 движке. Так как статья для новичков, то до корректной обработки ошибок вы дойдете еще не скоро, поэтому чтобы вас не грузить морем лишней информации и ни что не отвлекало я ставлю этот знак. |
|