Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Вывод данных из базы данных в таблицу
Kuliev  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Скорая помощь новичку
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 1508
Пользователь №: 17179
На форуме: 8 лет, 12 дней
Карма: 24




Специально для тех кто прошол курсы Е.Попова

В данной статье мы рассмотрим как вывести данные из БД


<?php
/**
* Скрипт вывода данных из базы данных в таблицу
* Автор: Kuliev
* ICQ: 319-248-267
* E-mail:
kuliev_a@mail.ru
*/

// Константы для подключения к СУБД
//Хост подключения к БД

define('PHP_HOST', 'localhost');

//Пользователь
define('PHP_USER', 'root');

//Пароль
define('PHP_PASS','');

//Базаданных
define('PHP_DB', 'my_database');

//Префикс таблиц БД
define('PHP_DBPREFIX', 'php_');

// Подключение к СУБД
$link = mysql_connect(PHP_HOST, PHP_USER, PHP_PASS) or die (mysql_error());

// Выбираем базу данных
mysql_select_db(PHP_DB, $link);

//Устанавливаем кодировку UTF8
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");

// Формируем строку для запроса к нашей базе данных
// Не забывайте обрамлять имена таблиц и полей обратными кавычками `TABLE`

$sql= "SELECT * FROM `". PHP_DBPREFIX."table`";

// Скармливаем наш запрос MySQL
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);

/* Обратите внимание на конструкцию
or die(mysql_error() ."<br/>". $sql) она Вам поможет в случае ошибки
в Вашем SQL запросле или отсутствия соединения с MySQL

Выводим данные из таблицы в цикле WHILE(), не вкоем случае не используйте
DO WHILE() эта конструкция предназначена совсем для других действий
*/

// Рисуем табличку

$table = "<table border=0 width=100% align=center>\n";

while ($row = mysql_fetch_assoc($result))
{
/* Прошу обратить внимание на функцию MYSQL_FETCH_ASSOC()
Выбрана она не случайно, данная функциявозвратит ассоциативный
массив с которым будем работать.

Многие делают ошибку в плане оптимизации и использую функцию
MYSQL_FETCH_ARRAY() данная функциявернет два массива,
один ассоциативный другой индексный тем самым мы увеличим потрябляемую
память скриптом.
*/


$table .= "<tr>\n";

$table .= "<td>".$row['id']."</td>\n";
$table .= "<td>".$row['name']."</td>\n";
$table .= "<td>".$row['age']."</td>\n";

$table .= "</tr>\n";
}

$table .= "</table>\n";

// Выводим заполненую таблицу на экран
echo $table;


Теперь рассмотрим создание динамического запроса SQL

<?php
// Если нажата кнопка search
if(isset($_POST['search']))
{
// Пришедшие данные из SELECT
$a = isset($_POST['a']) ? $_POST['a'] : 0;
$b = isset($_POST['b']) ? $_POST['b'] : 0;
$c = isset($_POST['c']) ? $_POST['c'] : 0;
$d = isset($_POST['d']) ? $_POST['d'] : 0;
$e = isset($_POST['e']) ? $_POST['e'] : 0;

// создаем ассоциативный массив
$array = array(
"`id_cat_1`" => $a,
"`id_cat_2`" => $b,
"`id_cat_3`" => $c,
"`id_cat_4`" => $d,
"`id_cat_5`" => $e
);
// Начальная строчка запроса
$sql= "SELECT * FROM `". PHP_DBPREFIX ."data`";

//Создаем пустой масив для условия WHERE
$sql_where = array();

//Перебираем массив
foreach($array as $key => $value)
{
// Если есть 0 в запросе отсеиваем его
if(!empty($value))
$sql_where[] = $key." = ".intval($value);
}

//Проверяем нужно ли подставлять условие WHERE в запрос
if(count($sql_where) > 0)
$sql.=" WHERE ";

//Формируем окончательную строку запроса
$sql.=" ".implode(" AND ", $sql_where);

//Собственно вот что получилось в запросе
echo $sql;
?>


Надеюсь что данный материал кому нибудь поможет. :)
PMПисьмо на e-mail пользователюICQ
    3   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса