Перейти к содержимому

Как вывести таблицу в 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. Надеюсь мой пример поможет Вам девушка).

Урок 21: Выборка из БД и вывод на экран

Правила безопасного кода достаточно простые — это применять нужные функции в нужном месте. При этом нет смысла впадать в безумие и применять их даже когда не надо. Допустим если мы пишем: $x = 1; echo $x; , то тут подразумевается, что $x всегда будет равна 1, а значит ничего применять не надо. А вот данные, которые пришли из-вне, или в содержании которых Вы не уверены, тогда стоит действовать по следующим правилам. Данные могут прийти из сессии, из кук, из формы POST или адресной строки GET, или же вы пользуетесь сторонней библиотекой, которая должна вернуть определённые данные, всем им не стоит доверять! Правила защиты очень просты:
Для чисел мы применяем: (int), (float), вне зависимости добавляем ли мы эти числа в БД (База Данных MySQL), или выводим на экран. При добавлении в MySQL числа пишем без кавычек.
Для строк в MySQL: мы пишем в кавычках, а так же применяем mysqli_real_escape_string.
Для строк, которые выводим на экран: htmlspecialchars.

$res = mysqli_query($link," SELECT * FROM `users` WHERE `login` = '".mysqli_real_escape_string($link,$_POST['login'])."' AND `age` = ".(int)$_POST['age']." "); $row = mysqli_fetch_assoc($res); echo (int)$row['age']; echo htmlspecialchars($row['login']);

Лично я проверяю безопасность следующим образом — ввожу во все поля строчку:

`'"text

Если mysqli_real_escape_string забыли применить, то выходит ошибка MYSQL. Не забывайте проверить то, что я пишу, чтобы имели представление о чём я говорю. Если при выводе информации на экран выводится текст жирным, то значит Вы забыли прописать htmlspecialchars, если же вы его прописали, то на экран выведутся кавычки, знак меньше, b, знак больше, text, знак меньше, слэш, b, знак больше. 🙂
Ошибка в MySQL называется SQL-Inj (SQL-Injection), ошибка в HTML называют XSS-Inj (XSS-Injection).

теперь давайте разберёмся как работает fetch_assoc. Он выбирает следующую запись. Допустим у нас в таблице есть 10 пользователей и мы пишем следующий код:

$res = mysqli_query($link," SELECT * FROM `users` "); while($row = mysqli_fetch_assoc($res)) < // закончили на 11-ой записи echo $row['login']; >while($row = mysqli_fetch_assoc($res)) < // Не сработает, 12-ой не существует echo $row['id']; >

В цикле мы вызываем функцию, пока она возвращает TRUE (любое содержание). Когда курсор среди выбранных записей передвигается на 11-ую позицию, то функция как бы отвечает «всё, записи закончились» и возвращает NULL, null как и false обрывает цикл, записей больше нет. Запуская второй цикл курсор до сих пор остаётся на 11-ой позиции и при вызове функции fetch_assoc у нас функция пытается выбрать следующую запись, а именно 12-ую, которой не существует, поэтому снова возвращает NULL и цикл не проходит ни одной итерации. Иду на опережение, в качестве академических знаний рассказываю, вернуть курсор на нулевую позицию можно при помощи функции mysqli_data_seek, в реальной же практике эта функция очень редко применяется и на протяжении этого курса она не нужна!

Если в форму ввести длинный текст без пробелом, то при выводе в DIV у нас появится горизонтальная прокрутка (не забудьте проверить, горизонтальная — это слева направо), так же текст уезжает за границу сайта вправо, исправляется это при помощи CSS свойства для DIV:

word-wrap:break-words;

Мы не верстаем таблицами, но в качестве академических знаний скажу, что break-words не работает для TD, если для таблицы не применять свойство table-layout:fixed;

Есть ещё функция nl2br, которую необходимо применять для textarea, когда человек вводит текст с переносами на новую строчку. При простом выводе его текста: echo $row[‘text’] переносы не будут работать, текст будет в одну строку выводиться, именно тут и надо применить nl2br функцию.

Под каждым уроком есть 10 тестов, которые помогут Вам закрепить пройденный материал.
Один из тестов будет развивать Вашу логику и интеллект!
Чтобы получить доступ к тестам — авторизируйтесь!

Вывод данных из MySql на PHP

Счетчик PR-CY.Rank

Первое, что нам следует сделать для того, чтобы получить данные из таблицы базы данных, — установить соединение с БД.

Извлечь данные из таблицы MySql

После того, как мы установили соединение с БД, c помощью запроса можно получить данные из любой таблицы. А с помощью цикла while их вывести.

: рублей
"; > ?>

Теперь давайте разберем функции, которые мы использовали для вывода данных из MySql.

mysqli_connect

mysqli_connect(, , , ) — устанавливает соединение с базой данных.

mysqli_query

mysqli_query(, ) — выполняет запрос к БД, написанный на языке SQL.

mysqli_fetch_array

mysqli_fetch_array() — поочередно возвращает по одной строке из результата запроса.

Вывод переменной врутри строки

Заметьте, что если вы выводите строку оператором echo и строка заключена в двойные кавычки (именно двойные), то внутрь строки можно вставлять переменные в фигурных скобках и они будут подставленны в этот шаблон. Круто, да?

Понравилась или помогла статья? Самое лучшее, что ты можешь сделать — это поделиться ею в любой из своих соцсетей (даже если ты поделишься в твиттере или google+, которыми ты не пользуешься — это очень поможет развитию моего блога). Спасибо! А если ты еще и оставишь любой комментарий снизу в обсуждениях, то это будет двойное СПАСИБО!

Вывод данных из mysql в php

Вывод данных из mysql в php

Рассмотрим простой пример подключения и вывода данных из базы mysql в php.

Для начала подключимся к базе данных.

// Параметры для подключения $db_host = "localhost"; $db_user = "user"; $db_password = "password"; // Подключение к базе данных $db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Не могу создать соединение "); // Выборка базы mysql_select_db("mydb",$db);

Установим кодировку, чтобы исключить появление «кракозябр» при выводе данных.

mysql_query("SET NAMES 'utf8'",$db);

Напишем запрос для выборки значений из нужной нам таблицы, возьмём все поля:

$result = mysql_query("SELECT * FROM `articles`",$db);

Теперь нужно вывести наши значения в нужном формате, рассмотрим два способа.

С помощью цикла «while-do»

do< echo "ID - ".$myrow['id']."
"; echo "Заголовок - ".$myrow['title']."
"; echo "Текст - ".$myrow['text']."
"; >while ($myrow = mysql_fetch_array($result));

Мы получаем строки таблиц с помощью функции «mysql_fetch_array», которая выводит одну строку. Она работает, как счётчик, при каждом цикле выводит следующею строку, до тех пор, пока они не кончатся в нашей таблице.

С помощью функции «printf»

do< printf("ID - %s
Заголовок - %s
Текст - %s

",$myrow['id'],$myrow['title'],$myrow['text']); >while ($myrow = mysql_fetch_array($result));

Функция использует метки, в нашем случае это «%s» — в них подставляются значения в последовательности, которую мы задаём, то есть:

printf("ID - %s
Заголовок - %s
Текст - %s

",$myrow['id'],$myrow['title'],$myrow['text']);

То же самое, что и эта запись:

echo "ID - ".$myrow['id']."
Заголовок - ".$myrow['title']."
Текст -".$myrow['text']."

";

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

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

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