WebScript.Ru
C:\   главная  ::   о сайте  ::  каталог скриптов  ::  гнездо  ::  форум  ::   авторам  :: Новостройки ::   ХОСТИНГ  ::

|| разделы::
|| поиск по сайту::

|| реклама::
|| новости почтой::
Рассылки Subscribe.Ru ::



Новости сайта WebScript.Ru
Популярные статьи

Hot 5 Stories

|| рекомендуем::




Вывод данных.


Прислал: NAS [ 01.10.2000 @ 15:17 ]
Раздел:: [ Статьи по PHP ]


Вывод данных.

Наиболее часто востребованной задачей при работе с базами данных является вывод результатов выборки или всего содержимого базы на экран. Рассмотрим как это реализуется на примере сервера MySQL и языка PHP.

Прежде всего рассмотрим, как получить структуру таблицы. Для этого в PHP существует функция: mysql_list_fields(string database_name, string table_name, int [link_identifier]). Параметр database_name - наименование базы данных, содержащей нашу таблицу. table_name - наименование таблицы, данные о полях которой мы пытаемся получить. int [link_identifier] - необязательный параметр, указывающий активное соединение.

Результат работы данной функции может быть использован в качестве параметра в следующих функциях:
mysql_field_flags()
mysql_field_len()
mysql_field_name()
and mysql_field_type()

Для того, чтобы узнать, сколько полей содержит данная таблица, необходимо использовать функцию mysql_num_fields(int result). Единственный обязательный параметр result, содержит результаты работы функции mysql_list_fields().

Для получения имен полей используем функцию mysql_fiels_name(int result, int field_index). result - результат работы функции mysql_list_fields(), а field_index - порядковый индекс поля. Например, mysql_field_name($res,1) - имя первого поля в таблице

Соединим все это вместе, предварительно установив соединение с базой данных, как я уже описывал:

mysql_connect("yourhost","user","password");
mysql_select_db("database");
$res = mysql_list_fields("database","table");
echo "<TABLE BORDER=1>";
echo "<TR>";
for ($i = 0; $i < mysql_num_fields($res); $i++) {
echo "<TH>";
echo mysql_field_name($res,$i);
echo "</TH>";
}

Таким образом мы получили "шапку" таблицы для вывода результатов. Необходимо заметить, что я подразумеваю, что мы не знаем ни количества, ни наименований полей таблицы. В большинстве случаев разработчику известна эта информация. Но нам важно разобраться в основных принципах, а конкретные случаи вы сможете реализовать сами.

Теперь перейдем к выводу содержания таблицы. Сначала необходимо выполнить запрос к базе данных. Запрос должен выглядеть так: SELECT * FROM tablename. Как посылать запросы к базам данных подробно описано в опыте "Создание системы Совет Дня". Код будет выглядеть следующим образом:

$sql = "SELECT * FROM users";
$res = mysql_query($sql);
while ($row = mysql_fetch_row($res)) {
echo "<TR>";
for ($i = 0; $i < $fields; $i++) {
echo "<TD>".$row[$i]."</TD>";
}
echo "</TR>";
}
echo "</TR></TABLE>";

Результатом работы этого скрипта будет, примерно, следующая таблица:

name email
John john@world.org
Kate cat@somewhere.com
William bg@microsoft.com
Andrew exper@inbox.ru

В следующем опыте рассмотрим как организовать постраничный вывод результатов.

© Андрей Головин //exper.ural.ru/


 :::::  C.H. пишет 12.11.2000 @ 09:18 
Классно именно то что я искал!!!
Продолжай в томже духе!!!
 :::::  Serge V. Larionov пишет 17.01.2001 @ 14:10 
Аналогично
 :::::  Влад пишет 25.06.2001 @ 14:41 
Уважаемый NAS, я не знаю, какой вам толк от публикования подобный статей, но большое вам от меня человеческое спасибо! Приятно читать и понимать! Побольшое, по возможности, статей посвященных PHP+MySQL, желательно с _работающими_ примерами.
 :::::  Vlad пишет 20.08.2001 @ 04:12 
for ($i = 0; $i < $fields; $i++) {

Меньше какого $fields ?!!!!
Наверное имелось в виду, что ранее было присвоено $fields = count($row) ?

Те, кто итак это понимает - в скриптах разбирается и это им незачем. А те кто пытаются чему-то научиться, на таких обидных опечатках будут останавливаться. :(
 :::::  Iogan пишет 12.04.2002 @ 16:01 
Так, а теперь меням все английские имена на русские. Адреса на российские на русском. И пытаемся сделать regexp какой-нить на нем(на том что из базы возварщено). Почему не работате preg_replace,erge_replace И т.д.?
 :::::  Михаил пишет 01.07.2004 @ 20:56 
Я статью прочитал. Очень хороша! Потом подумал и написал свой скрипт!
Гляньте!
<?
$DBL = mysql_connect("your_host", "user","pass");
if ($DBL){
$tb = mysql_select_db("your_table",$DBL);
if ($tb){
$asql = "select * from your_table";
$rep = mysql_query($asql, $DBL);
$acheck = mysql_fetch_row($rep);
$co = count($acheck);
for($i = $co; $i > 0; $i--){
$sql = "select * from your_table where id=$i;";
$res = mysql_query($sql,$DBL);
if($res){
while ($ar = mysql_fetch_array($res))
{
$name=$ar["name"];
$mail=$ar["mail"];
$capt=$ar["capt"];
$dat=$ar["dat"];
$icq=$ar["icq"];
$news=$ar["nnew"];
$klan=$ar["klan"];
echo "$name, $mail, $capt, $dat, $icq, $news, $klan";
}
mysql_free_result($res);
}
else
{
print("query failed");
}
}
}
else
{
print ("Unable to select DB");
}
}
else {
print("Could not connect");
}
?>
 :::::  Leon пишет 23.10.2004 @ 23:20 
Большое спасибо автору статьи и ОЧЕНЬ большое спасибо Vlad с его замечанием насчет переменной $fields , я уже думал бросать это безнадежное дело запустить такой элементарный скрипт.
Имя:
Email:
URL

Введите сумму двух чисел девять и шесть (девять+шесть=?)
Запомнить мою информацию

* Html запрещен* Ваш E-mail опубликован не будет.

Copyright © 2000-2001 WebScript.Ru nas@webscript.ru
Design © 2001 by Parallax Design Studio (aka Spectator.ru)
Все торговые марки и авторские права на эту страницу принадлежат их соответствующим владельцам.
Сгенерировано за: 0.0196860