Robotcraft and retrofit
Главная | PHP И MYSQL | Регистрация | Вход
Суббота
04.05.2024
16:53
Приветствую Вас Гость | RSS
http://sd-company.su/article/php/mysql_table_view  

PHP И MYSQL

UPD: 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`

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

  • Возьмите в привычку сразу заполнять комментарии к полям, это позволит вам выработать привычку комментирования и впоследствии не будет проблем при разработке больших и динамических полей, так как я сомневаюсь в том, что в вы наизусть будете помнить 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`');

// выполнение 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 движке. Так как статья для новичков, то до корректной обработки ошибок вы дойдете еще не скоро, поэтому чтобы вас не грузить морем лишней информации и ни что не отвлекало я ставлю этот знак.

 
   

 

Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz