PHP: MySQL — первый запрос

Проанализировав запросы основных поисковых систем, я пришел к выводу, что сегодняшняя тема очень даже актуальна в обществе начинающих программистов. Давайте попробуем подробней рассмотреть вопрос: как же делать SQL запросы в языке PHP…

Для того что бы работать с базой данных к ней нужно подсоедениться. Пусть наша база — это MySQL который идет вместе с Апачем и работает на локальном компьютере. Тогда для коннекта к базе нам необходимо выполнить следующий код:

mysql_connect('localhost', 'root', '')
   or die('Error!!! '.mysql_error());
mysql_select_db('base');
mysql_query("SET NAMES cp1251");

Писать это каждый раз — засорение кода, поэтому сделаем из этого кода функцию:

function db_connect($user='root',$password='',$db='base')
{
   mysql_connect('localhost', $user, $password)
      or die('Error!!! '.mysql_error());
   mysql_select_db($db);
   mysql_query("SET NAMES cp1251");
}

Все дальнейшие рассуждения будем проводить предполагая что код находится между строчками: 1 и N.

db_connect(); //Строка 1
...
...
...
mysql_close(); //Строка N - закрываем соединение с базой

Пусть наша база ‘base’ имеет таблицу ‘Users’ следующей структуры:

id (int), name (varchar[100]), age (int)

И имеются данные:

id name age
1 Иванов Иван 20
2 Петров Петр 21
3 Сидоров Сидр 20
4 Пупкин Пупка 25
5 Васечкин Вася 35

Далее рассмотрим на примере различных запросов, различные команды для вывода результата запроса.

Наш первый запрос — выведем все данные из таблицы:

$result = mysql_query("SELECT * FROM `Users`");
while ($data = mysql_fetch_assoc($result))
{
   echo $data["id"]." '".$data["name"]."' ".$data["age"]."<br/>";
}

Как видно из примера mysql_fetch_assoc создает ассоциативный массив с данными. Т.е. для обращения необхдимо указать имя столбца.

Наш второй запрос — выведем всех кому 20 лет:

$result = mysql_query("SELECT * FROM `Users` WHERE `age` = 20");
while(list($id, $name, $age) = mysql_fetch_row($result))
{
   echo "$id '$name' $age<br/>";
}

В данном случае значение данных записывается в переменные. И вся работа проводится с ними.

Наш третий запрос — выведем всех кому от 24 до 36 лет:

$sql = "SELECT `name` FROM `Users` WHERE (`age` > 24) AND (`age` < 36)";
$result = mysql_query($sql);
$numr = mysql_num_rows($result);
for ($i=0; $i<$numr; ++$i)
{
   echo mysql_result($result, $i, 'name');
   echo "<br/>";
}

Здесь мы получаем общее число строк, а далее вытаскиваем значения из $result путем указания строки и столбца.

Ну пожалуй хватит. Что имено использовать — дело Ваше. Как говорится на вкус и цвет…

Запись опубликована в рубрике PHP с метками , , , , . Добавьте в закладки постоянную ссылку.