Как вывести таблицу mysql в php
Перейти к содержимому

Как вывести таблицу mysql в php

  • автор:

Как мне вывести таблицу MYsql в PHP?

Допустим, у нас имеется таблица blog с полями name_blog и text_blog, тогда в простейшем случае работа с базой будет выглядеть так:

 // Подключение к базе: где $hostname - сервер, $username - имя юзера БД, // $password - пароль юзера, $basename - имя базы с которой мы будем работать $hostname = 'localhost'; $username = 'user1'; $passwordname = '123'; $basename = 'bd_blog'; $conn = new mysqli($hostname, $username, $passwordname, $basename) or die ('Невозможно открыть базу'); // Формируем запрос из таблицы с именем blog $sql = "SELECT * FROM `blog`"; $result = $conn->query($sql); // В цикле перебираем все записи таблицы и выводим их while ($row = $result->fetch_assoc()) < // Оператором echo выводим на экран поля таблицы name_blog и text_blog echo 'Название блога: '.$row['name_blog']; echo 'Текст блога: '.$row['text_blog']; >

Данный пример реализован с помощью mysqli, также можно реализовать с помощью PDO. Чтобы изучить более сложные приемы приема, передачи и вывода данных, читайте документацию по php и sql. Надеюсь мой пример поможет Вам девушка).

Как вывести список всех таблиц MySQL и количество строк в каждой из них впри помощи PHP?

Надо вывести список всех таблиц и чтобы рядом стояло количество строк в это таблице.
Что я делаю не так?

Список пуст!
"; > else < while ($table = mysqli_fetch_array($result)) < $numread = mysqli_num_rows($link, "SELECT * FROM `$table[0]`"); echo "
таб $table[0]. Кол-во строк: $numread
"; > > ?>
  • Вопрос задан более трёх лет назад
  • 6015 просмотров

2 комментария

Простой 2 комментария

Konata69lol

Konata Izumi @Konata69lol
Что выводит?
Какие-то ошибки?

FSystem88

Иван @FSystem88 Автор вопроса
Konata Izumi, выводит только список таблиц, а количество строк не выводит
Решения вопроса 1

HeadOnFire

Игорь Воротнёв @HeadOnFire
PHP, Laravel & WordPress Evangelist

SHOW TABLES FROM database_name прекрасно работает когда база не выбрана. Здесь мы показываем таблицы в базе, а не в $db_table. Исходя из вашего нейминга, вы просите таблицу показать ее таблицы, что абсурдно само по себе. Обращайтесь к базе. Или, если вы базу предварительно уже выбрали, то достаточно SHOW TABLES .

Далее, для SELECT * FROM table_name уже сначала нужно выбрать базу данных (которую вы опрашивали на предмет таблиц в первом запросе), или же обращаться к таблице в формате database_name.table_name.

Ну и, вместо того чтобы делать выборку всех строк со всеми колонками, спросите сразу SELECT COUNT(*) FROM database_name.table_name .

Еще проще и быстрее это сделать с помощью такого запроса:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name';

Результат этого запроса:

+-----------------------+------------+ | table_name | table_rows | +-----------------------+------------+ | wp_terms | 10 | | wp_yoast_seo_meta | 61 | | wp_yoast_seo_links | 33 | | wp_commentmeta | 0 | | wp_term_taxonomy | 10 | | wp_ewwwio_queue | 352 | | wp_usermeta | 114 | | wp_options | 281 | | wp_users | 5 | | wp_term_relationships | 49 | | wp_ewwwio_images | 1048 | | wp_links | 0 | | wp_postmeta | 21408 | | wp_termmeta | 0 | | wp_comments | 0 | | wp_posts | 738 | +-----------------------+------------+

Единственное, что нужно учесть — если таблицы у вас InnoDB, то данные цифры будут более-менее точными, но не совсем. В силу механизмов оптимизации. Так что если нужно «приблизительно» понимать — используйте данный метод. Если нужно с точностью до одной строки — тогда COUNT.

Ну и еще можно сделать SHOW TABLE STATUS , находять в выбранной базе данных. Точность подсчета количества строк на InnoDB такая же, как и предыдущем методе, но зато здесь будет еще много полезной информации. Например — avg_row_length, data_length, index_length и другое.

Mysql — вывести таблицу в таблицу html по столбцам/строкам- не нашла как, подскажите?

Составила таблицу в html (шапка таблицы есть), пыталась из таблицы mysqli вывести всё по клеткам таблицы. Пробовала отдельно и массивным типом — всегда вместо значения получала ошибку в столбце. Инет ничего не дал по этому поводу. Может вы подскажите как это сделать? И можно ли сделать вобще? (без неизвесных мне символов с++ или java. )
Поскольку в инете пишут только вариант, когда вывод происходит со стороны таблицы mysqli, а не запросом из html таблицы . Тобишь, я хочу в html взять из mysqli данные ПОСТРОЧНО// ПО ОДНОМУ ЗНАЧЕНИЮ ИЗ ТАБЛИЦЫ (insert into html, from mysqli), а предлагают только из mysqli положить в html (insert from mysqli, in html). Не знаю как ещё объянить свою точку зрения и мучения. Помогите, поясните, подскажите?

Вывод HTML-таблицы с функцией сортировки на PHP + MySQL

Несколько примеров как вывести данные из БД в таблицу и добавить к ней возможность сортировки.

Итак, простой вывод таблицы и базы:

prepare("SELECT * FROM `tours` ORDER BY `hotel`"); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC);
Вывод:
 
Заезд Отель Курорт Тип номера Питание Цена
EUR
Результат:

Основной принцип пользовательской сортировки основан на GET параметрах, к ссылке в href добавляется параметр ?sort=xxx со значением текущей сортировки. PHP-скрипт его получает, проверяет и подставляет в SQL-запрос.

Далее рассмотрим его детально на нескольких примерах:

Сортировка в шапке таблицы

Заведем массив $sort_list с ключами и вариантами сортировки, чтобы упростить вывод ссылок заведем функцию sort_link_th() , которая будет их формировать исходя из значения переменной $_GET[‘sort’] .

 '`date`', 'date_desc' => '`date` DESC', 'hotel_asc' => '`hotel`', 'hotel_desc' => '`hotel` DESC', 'city_asc' => '`city`', 'city_desc' => '`city` DESC', 'type_asc' => '`type`', 'type_desc' => '`type` DESC', 'food_asc' => '`food`', 'food_desc' => '`food` DESC', 'price_asc' => '`price`', 'price_desc' => '`price` DESC', ); /* Проверка GET-переменной */ $sort = @$_GET['sort']; if (array_key_exists($sort, $sort_list)) < $sort_sql = $sort_list[$sort]; >else < $sort_sql = reset($sort_list); >/* Запрос в БД */ $dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль'); $sth = $dbh->prepare("SELECT * FROM `tours` ORDER BY "); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC); /* Функция вывода ссылок */ function sort_link_th($title, $a, $b) < $sort = @$_GET['sort']; if ($sort == $a) < return '' . $title . ' '; > elseif ($sort == $b) < return '' . $title . ' '; > else < return '' . $title . ''; > >
Вывод:
Результат:

Сортировка в виде списка

Преведущий код немного переделан:

 '`date`', 'date_desc' => '`date` DESC', 'hotel_asc' => '`hotel`', 'hotel_desc' => '`hotel` DESC', 'city_asc' => '`city`', 'city_desc' => '`city` DESC', 'type_asc' => '`type`', 'type_desc' => '`type` DESC', 'food_asc' => '`food`', 'food_desc' => '`food` DESC', 'price_asc' => '`price`', 'price_desc' => '`price` DESC', ); /* Проверка GET-переменной */ $sort = @$_GET['sort']; if (array_key_exists($sort, $sort_list)) < $sort_sql = $sort_list[$sort]; >else < $sort_sql = reset($sort_list); >/* Запрос в БД */ $dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль'); $sth = $dbh->prepare("SELECT * FROM `tours` ORDER BY "); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC); /* Функция вывода ссылок */ function sort_link_bar($title, $a, $b) < $sort = @$_GET['sort']; if ($sort == $a) < return '' . $title . ' '; > elseif ($sort == $b) < return '' . $title . ' '; > else < return '' . $title . ''; > >
Вывод:
 
Заезд Отель Курорт Тип номера Питание Цена
EUR

Сортировка полем select

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

 '`date`', 'type' => '`type`', 'food' => '`food`', 'price_asc' => '`price`', 'price_desc' => '`price` DESC', ); /* Проверка GET-переменной */ $sort = @$_GET['sort']; if (array_key_exists($sort, $sort_list)) < $sort_sql = $sort_list[$sort]; >else < $sort_sql = reset($sort_list); >/* Запрос в БД */ $dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль'); $sth = $dbh->prepare("SELECT * FROM `tours` ORDER BY "); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC);
Вывод:
 
>Дата заезда
Заезд Отель Курорт Тип номера Питание Цена
EUR

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *