Извличане на данни от таблица
Извличането на данни от БД се различава от процеса на съхранението им по това, че е необходимо на извличаната информация да се назначи променлива, която да ги съхранява.
Преди да започне извличането на данни от БД, е необходимо да се създаде връзка към нея, след това изпращаме заявка за данните, които искаме да извлечем и накрая следва самият процес по извличане на данните.
Преди да започне извличането на данни от БД, е необходимо да се създаде връзка към нея, след това изпращаме заявка за данните, които искаме да извлечем и накрая следва самият процес по извличане на данните.
Заявката за извличане на данни от базата данни има следния синтаксис:
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[MAX_STATEMENT_TIME = N]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[PARTITION partition_list]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
SELECT връща редовете, селектирани от една или повече таблици в БД.
select_expr- показва колоната, която искате да обработите (в случая това е колоната, чието съдържание искате да разгледате);
table_references- показва името на таблицата (таблиците), чийто редове искате да разгледате;
WHERE- тази клауза ще липсва в заявката, ако селектирате всички редове;
FROM- показва от коя таблица ще извличаме информация;
ORDER BY- тази клауза определя коя колона сме избрали като начална.
Повече информация на адрес: http://dev.mysql.com/doc/
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[MAX_STATEMENT_TIME = N]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[PARTITION partition_list]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
SELECT връща редовете, селектирани от една или повече таблици в БД.
select_expr- показва колоната, която искате да обработите (в случая това е колоната, чието съдържание искате да разгледате);
table_references- показва името на таблицата (таблиците), чийто редове искате да разгледате;
WHERE- тази клауза ще липсва в заявката, ако селектирате всички редове;
FROM- показва от коя таблица ще извличаме информация;
ORDER BY- тази клауза определя коя колона сме избрали като начална.
Повече информация на адрес: http://dev.mysql.com/doc/
Функцията, която ще поставя в масив извлечените данни, е fetch_array().
Синтаксисът на функцията fetch_array() е:
mixed mysqli_fetch_array (mysqli_result $result [, int $resulttype = MYSQLI_BOTH])
$result- задължителен параметър. Идентификатор, върнат от функцията mysqli_query().
$resulttype- незадължителен параметър. Определя вида на масива, който ще се продуцира. Като стойност може да приеме една от следните константи: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.
Повече информация на адрес: http://php.net
mixed mysqli_fetch_array (mysqli_result $result [, int $resulttype = MYSQLI_BOTH])
$result- задължителен параметър. Идентификатор, върнат от функцията mysqli_query().
$resulttype- незадължителен параметър. Определя вида на масива, който ще се продуцира. Като стойност може да приеме една от следните константи: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.
Повече информация на адрес: http://php.net
Съдържанието на файла DB_display.php:
<!Doctype html>
<html>
<head>
<title>Извличане на данни от БД</title>
<meta http-equiv="Content-Type" content="text/html"; charset="UTF-8">
</head>
<body>
<?php
$host = "localhost";
$user = "user";
$password = "password";
$DBName = "PolyDB";
//създава връзка към БД
$link = new mysqli ($host, $user, $password, $DBName)
or die ("Невъзможно свързване");
//Заявка към БД. Звездичката означава да се извлекат
//всички данни от избраната таблица
$sql = "SELECT * FROM Потребители ORDER by ID";
$result=mysqli_query($link, $sql);
if ( $result=$link-> query($sql)) {
//Създава таблица с извлечените данни от БД
echo "<table border=\"1\" cellspacing=\"4\" cellpadding=\"4\">
<tr><th>ID</th><th>Име</th><th>Фамилия</th>
<th>Имейл</th><th>Коментар</th></tr>";
//Цикъл за извличане на данните от всеки ред
while($row = $result ->fetch_array()) {
echo "<th style = \"color: blue;\">$row[ID]</th>" . " " .
"<th style = \"color: blue;\">$row[Име]</th>" . " " .
"<th style = \"color: blue;\">$row[Фамилия]</th>" . " " .
"<th style = \"color: blue;\">$row[Имейл]</th>" . " " .
"<th style = \"color: blue;\">$row[Коментар]</th>" . " " .
"<tr></tr>";
}
echo "</table>";
}
else {
echo "БД не съдържа търсената информация.";
}
$link -> close();
?>
</body>
</html>
Всяка итерация на цикъла while превръща следващия ред информация от заявката (съхранена в променливата $result), в масив $row. Този процес продължава докато се обходят всички редове в таблицата. Резултатът от този процес се помества в HTML таблица.
Можете да тествате файла.
Можете да тествате файла.
|
|
Няма коментари:
Публикуване на коментар