русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Получение отдельной ячейки результата


Дата добавления: 2013-12-23; просмотров: 1536; Нарушение авторских прав


Выборка строки в виде списка

Передвижение по результирующему набору

В примере выше мы производили считывание результирующего набора данных с самого начала и до конца. Иногда бывает нужно пропустить несколько первых строк и начать с середины result-set.

int mysql_data_seek (int $result, int $row_number)

Эта функция устанавливает указатель текущей строки в результирующем наборе Sresult в позицию $row_number, так что следующий вызов mysql_fetch_assoc() вернет значения ячеек именно этой строки. Возвращает false в случае ошибки или если строки кончились.

LIMIT: ограничение выборки средствами SQL

В конце команды SELECT можно указать еще один необязательный модификатор, который позволяет поместить в результирующий набор данных не все строки из таблицы, удовлетворяющие WHERE-запросу, а только некоторые из них. Например:

SELECT * FROM people WHERE name!='' LIMIT 2, 10

Данная команда поместит в result-set не все записи с непустым именем, а только 10, начиная с третьей (нумерация начинается с 0, поэтому 2 означает "пропустить первые 2 записи").

Общий вид запроса

SELECT * FROM people WHERE name!='' LIMIT смещение, количество

Если смещение равно 0, а нужно только ограничить число записей:

SELECT * FROM people WHERE name! ='' LIMIT количество

В РНР предоставляет дополнительную функцию, извлекающую значения ячеек в обыкновенный список.

list mysql_fetch_row(int $result)

Функция mysql_fetch_row() возвращает очередную строку результата в виде списка, где каждой ячейке соответствует элемент массива с числовым индексом. Может возникнуть вопрос: зачем вообще нужны числовые индексы, когда можно использовать обращение по именам ячеек (mysql_fetch_assoc()) и SQL-конструкцию AS. Иногда в результате выборки могут присутствовать ячейки (фактически, колонки) с одинаковыми именами, но, соответственно, с различными индексами. Это происходит тогда, когда выборка в SELECT производится одновременно из нескольких таблиц . В простейших приложениях такое случается нечасто.



int mysql_num_rows (int $ result)

Функция mysql_num_rows() возвращает число строк в результате запроса. Таким образом, она позволяет определить вертикальный размер "двумерного массива результата".

mixed mysql_result(int $result, int $row, mixed $field)

Функция возвращает значение поля $field в строке результата с номером $row. Аргумент field может быть порядковым номером поля в результате, именем поля или именем поля с именем таблицы через точку tablename.fieldname. Если для имени поля в запросе применялся алиас ('SELECT foo AS bar FROM...'), используйте его вместо реального имени поля. При задании порядкового номера поля, нумерация начинается с нуля.

$conn=mysql_connect("localhost","","");$database = "book";mysql_select_db($database);$sql = "SELECT * FROM People"; // создаем SQL запрос$q = mysql_query($sql,$conn) or die(); // отправляем запрос на сервер$n = mysql_num_rows($q); // получаем число строк результата//отображаем значения полей for($i=0;$i<$n; $i++){ // перебираем все строки в результате запроса на выборку foreach ($names as $val) { // перебираем все имена полей $value = mysql_result($q,$i,$val); // получаем значение поля echo "<br>$value"; // выводим значение поля } }

 

Функция mysql_result() универсальна с ее помощью можно "обойти" весь результат по одной ячейке. Однако mysql_result() работает довольно медленно.

Функцию mysql_result() целесообразно применять, когда результирующий набор данных состоит из единственной ячейки. Например:

$r = mysql_query('SELECT COUNT(*) FROM people'); echo "Число строк в таблице: ".mysql_result($r, 0, 0);

 

Еще одна функция, обрабатывающая ряд результата запроса, возвращая массив (ассоциативный, численный или оба) с обработанным рядом результата запроса, или FALSE, если рядов больше нет. mysql_fetch_array- это расширенная версия функции mysql_fetch_row(). Помимо хранения значений в массиве с численными индексами, функция возвращает значения в массиве с индексами по названию колонок. Функция mysql_fetch_array() работает не медленнее, чем mysql_fetch_row(), и предоставляет более удобный доступ к данным.

array mysql_fetch_array ( resource result [, int result_type])

Второй опциональный аргумент result_typeв функции mysql_fetch_array() является константой и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Значением по умолчанию является: MYSQL_BOTH.

Используя MYSQL_BOTH, получим массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернет только ассоциативные соответствия, а MYSQL_NUM - только численные. ВНИМАНИЕ: имена полей, возвращаемые этой функцией зависят от регистра.

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

// с помощью mysql_fetch_array():<?/* ... начало то же, что и в предыдущем примере */ // отображаем значения полей// получаем значение поля в виде ассоциативного массива while($row = mysql_fetch_array($q, MYSQL_ASSOC)) { echo "<tr>"; foreach ($names as $val){ echo "<br>$row[$val] "; // выводим значение поля } }?> Задание

1. Создать форму для отображения любой таблицы базы данных. Форма должна содержать список всех таблиц некоторой базы данных. При выборе какой-то таблицы из списка, эта таблица выводится в виде обычной таблицы со всем ее содержимым.

2. Разработать ряд функций для работы с базов данных форума. Обеспечить возможность добавлении, удаления, редактирования данных, а также просмотр статистики, например для каждой темы, количество сообщений по этой теме.

 



<== предыдущая лекция | следующая лекция ==>
Получение результата | Электронная почта


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.