Извличане на данни от таблица
Извличането на данни от БД се различава от процеса на съхранението им по това, че е необходимо на извличаната информация да се назначи променлива, която да ги съхранява.
Преди да започне извличането на данни от БД, е необходимо да се създаде връзка към нея, след това изпращаме заявка за данните, които искаме да извлечем и накрая следва самият процес по извличане на данните.
Преди да започне извличането на данни от БД, е необходимо да се създаде връзка към нея, след това изпращаме заявка за данните, които искаме да извлечем и накрая следва самият процес по извличане на данните.
Заявката за извличане на данни от базата данни има следния синтаксис:
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 таблица.
Можете да тествате файла.
Можете да тествате файла.

|
Няма коментари:
Публикуване на коментар