Уроки PHP, веб-студия
LIDERIT.ru
PHP без БД и MySQL
Переменные:
Массивы:
Функции:
Передача переменных
Глобальный массив
Инструкция INCLUDE
Выборка из БД
Что мы можем делать с базой данных? Посмотрим из предложенной схемы:
1. Производить выборку из БД - оператор SELECT (ВЫБОРКА). Можем выбрать определенные поля по определенным данным (в нашем примере - сотрудникам. см. урок предыдущий): имена сотрудников, фамилии, должности или всю таблицу. Оператор SELECT (ВЫБОРКА) - самый частый запрос, который будем использовать.
2. Можем вставлять в базу новую информацию при помощи оператора INSERT - ВСТАВКА. Когда в уже существующую таблицу, например таблицу firstbd, можем вставить нового сотрудника прямо из PHP -файла.
3. Можем изменять информацию в таблице. Оператор - UPDATE (изменить любое поле в таблице).
4. Удалять ту или иную информацию. Оператор - DELETE.

ЗАЙМЕМСЯ ВЫБОРКОЙ ИЗ БАЗЫ.
У нас есть все исходные данные для дальнейшей работы: создавать PHP - файл (PHP-код), при помощи которого будем соединяться с базой данных и делать выборку из таблицы.
Вот этот код: Примечание: код пароля в целях безопасности указан не верно - введите свой пароль для доступа к MySQL.<?
$db = mysql_connect("u79183.mysql.masterhost.ru", "u79183", "000000000000");
mysql_select_db("u79183_firstbd", $db);
?>
ЗАДАЧА: ВЫВЕСТИ НА ЭКРАН ВСЕХ СОТРУДНИКОВ ФИРМЫ.
Напишем код:
<?$db = mysql_connect("u79183.mysql.masterhost.ru", "u79183", "000000000000");
mysql_select_db("u79183_firstbd", $db);
$result = mysql_query ('SELECT * FROM firma', $db);
$myrow = mysql_fetch_array ($result);
echo $myrow ["name"];
?>
Код выведет:
АлексейКомментарии: рассмотрим ещу раз наш код.
<? - начало выполнения php-скрипта$db = mysql_connect("u79183.mysql.masterhost.ru", "u79183", "000000000000"); - соединение с хостом и базой данных
mysql_select_db("u79183_firstbd", $db); - соединение с нашей таблицей firstbd
$result = mysql_query ('SELECT * FROM firma', $db); - выводит всех сорудников на экран с помощью функции mysql_query (строка запроса). То есть, сам запрос формируется в круглых скобках, где находится параметр SELECT * FROM firma - все сотрудники фирмы (* - означает все поля, все сотрудники фирмы). По -сути, написали, выбрать все поля. Откуда - FROM. Из таблицы - firma. $db - идентификатор нашего соединения.
Выбрать все поля из таблицы firma.
Запрос вернет нам результат и его надо поместить в переменную $result. При таком коде функция выполняется и в переменную $result попадает таблица firma (4 поля нашей таблицы и все сотрудники). Но эта таблица попадает в виде "неосязаемой" матрицы, с которой напрямую работать нельзя, так как сотрудников (и полей) может быть тысячи. Придумали специальный способ, который позволяет вытаскивать из этой таблицы определенные поля нашей таблицы. Это функция будет следующей, то есть mysql_fetch_array, в которую помещается параметр $result и всё это помещается в переменную $myrow.
$myrow = mysql_fetch_array ($result); - - Эта функция вытаскивает из результата первую запись, как массив - array. И этот массив помещается в переменную $myrow. Что получилось? Посмотрим на схеме:

Мы прописали:
$result = mysql_query ('SELECT * FROM firma');
где SELECT * FROM firma - все поля из таблицы firma. То есть, вся таблица попала в $result в виде матрицы. Из этой матрицы надо вытащить данные. Для этого мы написали функцию $myrow = mysql_fetch_array ($result), где параметр этой функции сама матрица-таблица ($result). И скажем, что бы нам поместили в первый ряд самую первую запись - первое поле id=1, то есть запись с данными Алексей Алексеев Директор как массив (вспомним ассоциативные массивы). На данный момент в $myrow у нас находится массив из первой записи - Алексей Алексеев Директор. Таким образом, обратившись к любому индексу мы можем вытащить эту информацию.
echo $myrow ["name"]; - - выводит из поля d=1, (где оператор name как элемент массива - имя) Алексей. То есть, здесь в $myrow поместился массив из первой записи.
?> - конец скрипта.
Примечание: Если в скрипте в операторе ["name"] поменять на ["dol"] - выведет должность Директор (можно поэксперимертировать).
Теперь попробуем вытащить не все поля, а только поле lastname - выведет фамилию Алексеев.Напишем код:
<? - начало выполнения php-скрипта
$db = mysql_connect("u79183.mysql.masterhost.ru", "u79183", "000000000000");
mysql_select_db("u79183_firstbd", $db);
$result = mysql_query ('SELECT lastname FROM firma', $db);
$myrow = mysql_fetch_array ($result);
echo $myrow ["lastname"];
?> - конец скрипта
Алексеев
Как выводить определенные записи? Например:
<? - начало выполнения php-скрипта
$db = mysql_connect("u79183.mysql.masterhost.ru", "u79183", "000000000000");
mysql_select_db("u79183_firstbd", $db);
$result = mysql_query ("SELECT dol FROM firma WHERE id='2' ", $db);
$myrow = mysql_fetch_array ($result);
echo $myrow ["dol"];
?> - конец скрипта
Код выведет должность в поле id=2, то есть Заместитель.
Заместитель.
Для того, что бы отображались записи правильно, необходимо настроить полe id
Для Алексея id=1
Для Ивана id=2
Для Александра id=3
Войти в панель phpmyadmin и произвести необходимые изменения - смотри ниже рисунки:


Кратко о SGL
Операторы
Ещё о SGL...
PHP+MySQL
Создаем БД и таблицы
Cоединяемся с БД
Вставка данных
Выборка данных
Вывод данных
Обновление данных
Операции в SQL
Функции в SQL
Экспорт, импорт
Транзакция