Выбор данных из таблиц базы данных MySQL
В этом уроке вы узнаете, как выбирать записи из таблицы MySQL с помощью PHP.
SQL-запрос с использованием оператора SELECT
На предыдущих уроках мы узнали, как создавать базу данных и таблицу, а также вставлять данные. Теперь пришло время получить данные, которые были вставлены в предыдущем уроке. Для выбора записей из таблиц базы данных используется оператор SQL SELECT
.
Мы можем выбрать несколько столбцов из таблицы, разделив каждое имя столбца запятой:
Мы можем выбрать все столбцы в таблице с помощью символа звездочки (*
):
Давайте сделаем SQL-запрос с использованием оператора SELECT
, после чего мы выполним этот SQL-запрос, передав его PHP функции mysqli_query()
для получения данных таблицы.
В нашей таблице persons базы данных MySQL есть следующие записи:
Код PHP в следующем примере выбирает все данные, хранящиеся в таблице persons (использование символа звездочки ( *
) вместо имени столбца позволяет выбрать все данные в таблице):
<?php
/* Попытка подключения к серверу MySQL. Предполагая, что вы используете MySQL
сервер с настройкой по умолчанию (пользователь root без пароля) */
$link = mysqli_connect("localhost", "root", "", "demo");
// Проверка подключения
if($link === false){
die("ОШИБКА: не удалось подключиться. " . mysqli_connect_error());
}
// Попытка выполнения запроса select
$sql = "SELECT * FROM persons";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
echo "<table>";
echo "<tr>";
echo "<th>id</th>";
echo "<th>first_name</th>";
echo "<th>last_name</th>";
echo "<th>email</th>";
echo "</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['first_name'] . "</td>";
echo "<td>" . $row['last_name'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
// Доступный набор результатов
mysqli_free_result($result);
} else{
echo "Записей, соответствующих вашему запросу, не найдено.";
}
} else{
echo "ОШИБКА: не удалось выполнить $sql. " . mysqli_error($link);
}
// Закрыть соединение
mysqli_close($link);
?>
Объяснение кода (процедурный стиль)
В приведенном выше примере данные, возвращаемые функцией mysqli_query()
, хранятся в переменной $result
. Каждый раз при вызове функции mysqli_fetch_array()
она возвращает следующую строку из набора результатов в виде массива. Цикл while используется для просмотра всех строк в наборе результатов. Наконец, к значению отдельного поля можно получить доступ из строки, передав индекс поля или имя поля переменной $row
, например $row['id']
или $row[0]
, $row['first_name']
или $row[1]
, $row['last_name']
или $row[2]
, и $row['email']
или $row[3]
.
Если вы хотите использовать цикл for
, вы можете получить значение счетчика цикла или количество строк, возвращаемых запросом, передав переменную $result
в функцию mysqli_num_rows()
. Это значение счетчика цикла определяет, сколько раз этот цикл должен выполняться.
Результат выполнения кода:
id first_name last_name email 1 Peter Parker peterparker@mail.com 2 John Rambo johnrambo@mail.com 3 Clark Kent clarkkent@mail.com 4 John Carter johncarter@mail.com 5 Harry Potter harrypotter@mail.com 6 Ron Weasley ronweasley@mail.com