Статьи PHP, Форум, Уроки PHP, дизайн, раскрутка сайта
Портал для программистов, дизайнеров, SEO - оптимизаторов.
Статьи PHP, MySQL, AJAX, Раскрутка сайта, Заработок на своем сайте
Статьи PHP, MySQL, AJAX, Раскрутка сайта, Заработок на своем сайте
TIGER ICQ 3 6 0 2 9 5 6 8 3
     
Выберите раздел
php, javascript,ajax,mysql,TIGER CMS
  Для начинающих
php, javascript,ajax,mysql,TIGER CMS
  Общие
php, javascript,ajax,mysql,TIGER CMS
  Безопасность
php, javascript,ajax,mysql,TIGER CMS
  Интересное
php, javascript,ajax,mysql,TIGER CMS
  Новости PHP
php, javascript,ajax,mysql,TIGER CMS
  PHP + AJAX
php, javascript,ajax,mysql,TIGER CMS
  JavaScript
php, javascript,ajax,mysql,TIGER CMS
  Дизайн
php, javascript,ajax,mysql,TIGER CMS
  Раскрутка
php, javascript,ajax,mysql,TIGER CMS
  Заработок
php, javascript,ajax,mysql,TIGER CMS
  Советы

Поиск
 
 
 

Друзья сайта
 
 
1. www.bvisoft.com
Онлайн счетчик
 

Статистика
  Всего статей: 405
  Опубликовано: 405
  Проверяються: 0
  Добавлено сегодня: 0
--------------------------------------
  Прочитано статей: 405
  Всего прочтений: 155363
--------------------------------------
  Сейчас читают: 4 чел.

Кнопка сайта
  Если мой сайт вам чем-то помог, поставьте, пожалуйста, на своем сайте такую кнопку:
 
  Код кнопки:
 

 

Как вывести данные из таблицы? [Версия для печати]
Разместил: admin . Раздел: Для начинающих. Опубликовано: 09-20-2007 18:31:49
Итак, база (и первая таблица в ней) созданы.

Напишем скрипт, который будет формировать html-страницу с содержимым таблицы.
Но сначала таблицу надо заполнить содержимым. Так как форма ввода у нас еще не создана,
то воспользуемся методом из предыдущего шага - создадим sql-запрос на добавление записи в таблицу и направим его (файл с запросом) на вход mysql.exe.

Вот этот скрипт:

connect books;
insert into books (
id, author, namebook, series, edition, year, isbn,
pages, when_create, how, status)
values (null, "Р. Яргер и др.",
"mysql и msql. Базы данных для небольших предприятий и Интернета",
0, 0, 2000, "5-93286-010-3", 557, 3, 170, 0),
(null, "Ларри УОЛЛ", "Программирование на perl",
0, 3, 2001, null, 1200, 5, null, 0);
Несколько замечаний по этому запросу. Во-первых, я не сказал "commit".
В данном случае это не обязательно, т.к. commit произойдет по окончанию скрипта автоматически.
Во-вторых, в качестве значения для ключевого поля id выбрано значение null, что заставляет mysql присвоить
(в силу параметра для поля auto_increment) числовое значение, на единицу большее, чем максимальное
из существующих значений для этого поля в таблице. В-третьих, некоторые поля мы "занулили" - потом заполним.
И в-четвертых, этот запрос к sql-серверу отличается от стандарта! Дело в том, что (как я уже говорил)
mysql имеет некоторые отличия от sql-стандарта. В частности, insert допускает такую сокращенную форму записи.
По правилам я бы должен был бы вместо одного insert-а с перечисленными через запятую группами значений
в values использовать два запроса. Но мы облегчили себе жизнь. Вообще-то это, на мой взгляд,
не лучшая практика - использовать всякие "отклонения от нормы". По крайней мере страдает переносимость.
Но нас сейчас эта тема вряд ли должна волновать.
Теперь напишем скрипт для нашей первой страницы. html-код пока использован по минимуму.
Кстати, чуть не забыл. Если вы используете (готовитесь использовать ;) php3, то в php3.ini в виндючем каталоге раскомментируйте строчку

extension=php3_mysql.dll
Для php4 (его ini-файл кличут php.ini) ничего делать не надо, т.к. поддержка mysql в 4-й версии встроенная.

А теперь обещанный скрипт:
<html><body>
<table border=1>
<?php
$db_name="books"; //база данных
$table="books"; //таблица
$host="localhost"; //хост
$user=""; //логин (при коннекте к локальному хосту логин и пароль не нужен - нас итак пустят! ;)
$pass=""; //password
//законнектимся - получаем link-идентификатор или вывод номера и текста ошибки
//с последующим прерыванием работы скрипта (die())
$link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
//выбираем базу данных books, созданную нами ранее
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
//выберем данные
$result=mysql_query("select * from ".$table, $link) or die(mysql_errno($link).mysql_error($link));
//сформируем заголовок таблицы результатов выборки
$th=explode("#","id#Автор#Название книги#Серия#Ред.#Год#isbn#Стр.#Когда#Цена#Статус");
echo "<tr><th>",implode("</th><th>",$th),"</th></tr>";
//выведем результаты в html-документ
while($data=mysql_fetch_row($result)) {
echo "<tr><td>", implode("</td><td>",$data), "</td></tr>";
}
//освободить выделенную под результат выборки память
mysql_free_result($result);
mysql_close($link);
?>
</table>
</body></html>
Некоторые комментарии (более подробно в следующих шагах).
Во-первых, даже в такой упрощенной форме код работы с mysql избыточен.
Т.к. мы работает с одной базой, да еще и делаем единственный запрос,
то вместо mysql_connect(), mysql_select_db() и mysql_query() достаточно было вызвать mysql_db_query().
Эта функция при необходимости выполнит коннекцию (в прочем, в этом она не одинока), выберет базу данных и выполнит запрос к базе.

Во-вторых, mysql_close() тоже необязательна, т.к. соединение с сервером будет автоматически закрыто при окончании скрипта.

В-третьих, и уж конечно же в данном случае во mysql_free_result() никакой необходимости.
Освобождать память при единственном запросе да еще такого незначительного объема...
Здесь эта функция вызвана скорее для демонстрации возможных операций с mysql на php, ну или, если хотите, для порядка. ;)

В-четвертых, функции implode() и explode() относятся к стринговым.
Этой теме будет посвящен отдельный шаг (шаги). А пока: explode() создает массив из фрагментов строки,
разбирая ее как строку с разделителем, указанном в первом параметре. implode() делает обратную операцию.
Эту пару я применил для удобства - по-моему это проще, чем набирать строку
в виде "...текст</th><th>текст..." и уж тем более проще, чем делать кучу echo с текстами, обрамленными тегами <th>/</th>.

И в-пятых, сие чудо программистской мысли ;) выполняется как под 4-й версией php4, так и под 3-ей.

Далее в программе: подробное описание функций работы с mysql, форма для ввода записей,
чтение (импорт) данных из файла и запись (экспорт) в файл, index.php3.

Источник: http://articles.org.ru   Прочитана 1653 раз.
  Закладки:  
     
     
     




     
   TIGER EMAIL tiger1989@mail.ru
online SpyLOG тИЦ и PR
Copyright 2007 by TIGERCMS.com
Powered by TIGER-News v1.1