Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Отображение данных из БД mysql на PHP -странице↑ ⇐ ПредыдущаяСтр 3 из 3 Содержание книги
Поиск на нашем сайте
Продолжим работу с данными, отобранными из таблицы students. Пока этот результат хранится в переменной $result. Код страницы index.php имеет вид:
<?php //устанавливаем доступы к базе данных: //переменная $host - имя хоста, на локальном компьютере (в нашем случае, это localhost) $host = 'localhost'; //переменная $user – имя пользователя, по умолчанию это root $user = 'root'; //переменная $password – пароль, он по умолчанию пустой $password = ''; //$db_name – имя базы данных $db_name = 'test'; //создаем соединение, используя наши доступы: mysql_connect($host, $user, $password); //выбираем базу данных mysql_select_db($db_name); //устанавливаем кодировку (не обязательно) mysql_query("SET NAMES ' cp1251'"); //задаем имя таблицы в переменной $table $table = 'students'; //отбираем все записи из таблицы students $query = "SELECT * FROM ". $table; //выполняем запрос $result = mysql_query($query); ?>
После того, как сделали запрос к базе, в переменной $result будет лежать результат этого действия. Однако лежит он не в той форме, которая нам нужна в PHP, а в той форме, в которой его прислала нам база. Достать результат в нормальном виде (в виде массиве) можно с помощью функции mysqli_fetch_assoc. Функция mysqli_fetch_assoc считывает одну строку результата, который прислала база данных. Чтобы отобразить все строки из переменной $result используем цикл while. После команды $result = mysql_query($query) добавляем следующий код:
//Преобразуем то, что отдала база в массив PHP с именем $row //пока происходит считывание строк из $result while($row = mysqli_fetch_assoc($result)) { //выводим данные из массива $row: echo $row['fam']." со стипендией ". $row['stip']." руб <br>"; } ?>
Итоги: 1) в цикле while считываем построчно результат из базы данных; 2) когда цикл дойдет до последней строки функция mysqli_fetch_assoc вернет false и цикл while закончит свою работу; 3) массив $row имеет поля такие же, как и база данных students, и обращение к ним осуществляется так: $ row [' id '], $ row [' fam '], $ row [' age '], $ row [' stip '].
Чтобы данные из базы были выведены в табличном виде, теги создания таблицы, строк и ячеек напечатаем с помощью команды echo. Изменим вышеприведенный код:
//Делаем запрос к БД, результат запроса храним в $result: $result = mysql_query($query);
//Печатаем тег начала таблицы echo '<table align="center" border="1">'; //Создаем шапку таблицы //Начинаем первую строку echo '<tr>'; //Создаем первую ячейку первого столбца echo '<th>Номер</th>'; //Создаем первую ячейку второго столбца echo '<th>Фамилия</th>'; //Создаем первую ячейку третьего столбца echo '<th>Возраст</th>'; //Создаем первую ячейку четвертого столбца echo '<th>Стипендия</th>'; //Завершаем первую строку echo '</tr>'; // Делаем обход массива и вывод данных из таблицы students while($row = mysql_fetch_assoc($result)) { //печатаем очередную строку таблицы с данными echo '<tr align="center">'; echo '<td>'.$row['id'].'</td>'; echo '<td>'.$row['fam'].'</td>'; echo '<td>'.$row['age'].'</td>'; echo '<td>'.$row['stip'].'</td>'; echo '</tr>'; } //закрываем тег создания таблицы echo '</table>'; ?>
Обновите страницу index.php и просмотрите результат – это должна быть таблица:
Обработка команд SQL в PHP Команда SELECT Команда SELECT позволяет отобрать несколько строк из таблицы. Ее синтаксис следующий: SELECT * FROM имя_таблицы WHERE условие_отбора; Примеры использования команды SELECT рассмотрим ниже. Выберем из нашей тестовой таблицы students студента с id равным 2: <?php //В $result будет находиться одна строка с данными на Белова: $query = "SELECT * FROM students WHERE id=2"; $result = mysql_query($query);?>Выберем из нашей таблицы students студентов с id больше 2: <?php //В $result будут все студенты, кроме первого и второго: $query = "SELECT * FROM students WHERE id>2"; $result = mysql_query($query);?>
Выберем из нашей таблицы students студентов с id больше 2 включительно: <?php //В $result будут все студенты, кроме первого: $query = "SELECT * FROM students WHERE id>=2"; $result = mysql_query($query);?>
Выберем из нашей таблицы students студентов с id, не равным 2: <?php //В $result будут все студенты кроме Белова (потому что у него id равен 2): $query = "SELECT * FROM students WHERE id!= 2"; $result = mysql_query($query);?>
Выберем из нашей таблицы students студентов возрастом 16 лет: <?php //В $result будут Антонов и Ветров: $query = "SELECT * FROM students WHERE age=16"; $result = mysql_query($query);?>
Выберем из нашей таблицы students студентов со стипендией 1400: <?php //В $result будут Донцов, Калинин: $query = "SELECT * FROM students WHERE stip=1400"; $result = mysql_query($query);?>
Выберем из нашей таблицы students студента с фамилией Егоров: <?php //В $result будет только Егоров: $query = "SELECT * FROM students WHERE fam='Егоров' "; $result = mysql_query($query); /* Обратите внимание на кавычки: поскольку вся строка запроса у нас лежит в двойных кавычках, то строку 'Егоров' мы возьмем в одинарные! */?>Группировки условий Если вам нужны сложные комбинации команд OR и AND то, так же, как в if, их можно группировать с помощью круглых скобок (), чтобы показать приоритет условий. Давайте выберем всех студентов в возрасте от 16 лет до 18 лет (включительно) или со стипендией не менее 1400 руб (обратите внимание на расстановку скобок () - именно они группируют условия): SELECT * FROM students WHERE (age>=16 AND age<=18) OR (stip>=1400) Выбор столбцов В результат, который вернет нам база данных, не обязательно включать все столбцы. Пусть необходимо узнать только фамилия и возраст студента, не вытягивая из базы данных всю остальную информацию: <?php /* В $result будут только поля fam и age и не будет id, stip (звездочка *, которую мы ставили раньше, указывает вернуть ВСЕ столбцы): */ $query = "SELECT fam, age FROM students"; $result = mysql_query($query);?> Кроме того, можно выполнить частичное совпадение строки с помощью % в ключевых словах. Ниже будут показаны все студенты, фамилия которых начинается с “Ант”. SELECT * FROM students WHERE fam LIKE ' Ант% ';
Ниже будут показаны все студенты, фамилия которых заканчивается на “ов”. SELECT * FROM students WHERE fam LIKE ' %ов ';
Вы также можете дать % в обоих направлениях. В этом случае, будет поиск для данного ключевого слова в любом месте строки. Ниже будут показаны все студенты, которые содержат “н” внутри их фамилии. SELECT * FROM students WHERE fam LIKE '%н%';Давайте выберем те записи, у которых возраст начинается с цифры 2, а затем идет еще один символ: SELECT * FROM students WHERE age LIKE '2_'
|
||||
Последнее изменение этой страницы: 2021-05-27; просмотров: 148; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.68.161 (0.005 с.) |