Проанализировав запросы основных поисковых систем, я пришел к выводу, что сегодняшняя тема очень даже актуальна в обществе начинающих программистов. Давайте попробуем подробней рассмотреть вопрос: как же делать 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 путем указания строки и столбца.
Ну пожалуй хватит. Что имено использовать — дело Ваше. Как говорится на вкус и цвет…