Php/ mysql. как выполнить домашнее задание player.php?
Создал файл player.php, создал таблицу данных в phpmyadmin. Написал код по выведению данных на странице в браузере. Ничего не показывает... Но когда этот код подставляю в index.php, то всё работает.
5 ответов
С кодом или скриптом что-то вашим, вот в вопросе готовое решение:
https://fructcode.com/ru/qa/php-mysql-domasnee-zadanie-57-uroka-tgukud/
Нужно:
1. Создать файл db.php с содержимым:
<?php
$mysqli = new mysqli('127.0.0.1', 'root', '', 'kinomonster');
if (mysqli_connect_errno()) {
print_f("Соединение не установлено", mysql_connect_error());
exit();
}
$mysqli->set_charset('utf8');
?>
2. Создать файл player.php с содержимым:
<?php
/**
* Код PHP выносим вверх. Подключение к базе данных выносим в отдельный файл db.php
* и вставляем файл функцией include
*/
include('db.php');
/* Заводим переменные name и author и присваиваем им пустые значения, на тот случай, если захотим их где-то вывести в html коде. */
$name = "";
$author = "";
/* Проверяем, существуют ли переменные $_POST и если существуют, тогда обрабатываем данные POST от пользователя и переопределяем переменные $name и $author, присвоив им отфильтрованные значения от пользователя
*/
if(isset($_POST['name']) && isset($_POST['author'])) {
$nameFilter = htmlspecialchars($_POST ['name'], ENT_QUOTES, 'UTF-8');
$authorFilter = htmlspecialchars($_POST ['author'], ENT_QUOTES, 'UTF-8');
$name = $nameFilter;
$author = $authorFilter;
/**
* Вставку в базу данных
*/
$query = "INSERT INTO music VALUES(null, '$name', '$author')";
$mysqli->query($query);
}
?>
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!--Main Style-->
<link href="css/style.css" rel="stylesheet">
<title>Плеер</title>
</head>
<body>
<div class="col-lg-6 col-lg-push-3 field">
<form action="player.php" method="post" clas="form-group">
<legend>Исполнители / Песни</legend>
<input type="text" name="name" placeholder="<?php echo $name;?>">
<input type="text" name="author" placeholder="<?php echo $author;?>">
<button type="submit" class="btn">Отправить</button>
</form>
<table class="table table-striped ">
<?php $querry = $mysqli->query('SELECT * FROM music'); ?>
<!--
* Чтобы избежать ошибок, когда у нас пустая база данных, нужно поставить дополнительные проверки
* if($querry) - т.е. если запрос выполнился и пришел результат, тогда делаем while.
-->
<?php if($querry): ?>
<?php while ($row = mysqli_fetch_assoc($querry)): ?>
<tr>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['author']; ?></td>
</tr>
<?php endwhile; ?>
<?php endif; ?>
</table>
</div>
<?php
$mysqli->close();
?>
</body>
</html>
3. Создать файл kinomonster.sql с содержимым:
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1
-- Время создания: Декабрь 28 2017 г., 16:32
-- Версия сервера: 10.1.9-MariaDB
-- Версия PHP: 5.6.15
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- База данных: `kinomonster`
--
-- --------------------------------------------------------
--
-- Структура таблицы `music`
--
CREATE TABLE `music` (
`id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`author` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `music`
--
ALTER TABLE `music`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT для сохранённых таблиц
--
--
-- AUTO_INCREMENT для таблицы `music`
--
ALTER TABLE `music`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
затем нужно перейти в phpmyadmin и импортировать этот дамп. Как импорт/экспорт делать детально показан в уроках.
Точнее, когда запускаю player.php на страничке показывается код!
До меня не доходит! Мне SQL-дамп базы (kinomonster.sql) создавать?
И что это значит - "Там в примере файл player.php и html-форме action player.php, иначе либо в action переименовать нужно страницу обработки формы, либо оставить все как есть"
Блин вообще котелок уже не варит!
Спасибо!