Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Отображение данных из БД mysql на PHP -страницеСодержание книги
Поиск на нашем сайте Продолжим работу с данными, отобранными из таблицы 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; просмотров: 206; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |