Осваиваю базы данных MySQL. Вывод на страницу сайта
Ну, прошло лет 17 или 18 с тех самых пор, как я начал заниматься сайтами и что-то там писать на HTML. И вот свершилось чудо чудное. Произошло это, так как работаю над блогом сайта englishask.ru.
Базы данных по мнению нейросети. А не эти ваши там текстовые файлы.
Как оказалось, чтение из базы вообще мало отличается от чтения из текстового файлика вроде обычного txt. Зашел на хостинге в управление базами, зашел в phpMyAdmin, создал базу, создал таблицу, создал столбцы... все довольно просто и логично.
Тут, правда, вышла небольшая накладка. Я не сразу понял, что первый столбец мне нужен с ID. Так как по нему проще всего выводить отдельные записи. Плюс, пришлось гуглить типы данных. Например, что INT - это целые числа. Но TEXT и DATE проблем не возникло. Логично, что это текст и дата.
Еще одна фишка phpMyAdmin. Записи в базу легко вставить по кнопке... [Вставить], ага. Но вот редактировать записи в таблице базы (при обзоре) он дает только после присвоения индексов. Я над этим пол ночи страдал. А потом просто поставил первичный индекс на столбец ID и все наладилось.
В сети загуглил самый простой запрос к MySQL базе:
/* Если 1 запись */
$id = 1; // Номер записи
/* Соединение с базой. Хост, имя пользователя, пароль, имя базы данных */
$link = mysqli_connect("localhost", "blog", "11111111111", "blog");
/* проверка соединения */
if ($link == false){
header("HTTP/1.0 500 Internal Server Error"); // Если выше не было вывода текста. Иначе будет ошибка.
echo("Ошибка: Невозможно подключиться к MySQL"); // Можно добавить ошибку: . mysqli_connect_error()
exit();
}
/* изменение набора символов на utf8 */
if (!mysqli_set_charset($link, "utf8")) {
printf("Ошибка при загрузке набора символов utf8: %s\n", mysqli_error($link));
exit();
}
// Сам запрос. Тут выбираем все строки (*) из таблицы БЛОГ, где id = $id (в самом начале сделал его 1)
$sql = 'SELECT * FROM blog WHERE id ='.$id;
$result = mysqli_query($link, $sql); // Запрос ушел
$row = mysqli_fetch_array($result); // Результат массивом
/* Дальше просто выводим данные где надо. Тут id, name и text - имена столбцов, которые мы создавали в таблице базы. */
echo $row['id'];
echo $row['name'];
echo $row['text'];
mysqli_close($link); // Закрываем соединение
Если записей много, то меняем строку запроса а нужную нам. Например: $sql = 'SELECT * FROM blog'; А вывод меняется на цикл.
while ($row = mysqli_fetch_array($result)) {
echo $row['id'];
echo $row['name'];
echo $row['text'];
}
Такие вот первые эксперименты с базами данных. Над записью я еще работаю. Но принцип там примерно такой же. Надо только не забывать о безопасности и экранировании всех лишних символов. Но про это, думаю, напишу в следующий раз.