Php/ mysql. как выполнить домашнее задание player.php?

1

Создал файл player.php, создал таблицу данных в phpmyadmin. Написал код по выведению данных на странице в браузере. Ничего не показывает... Но когда этот код подставляю в index.php, то всё работает. 

php

5 ответов

1

С кодом или скриптом что-то вашим, вот в вопросе готовое решение:

https://fructcode.com/ru/qa/php-mysql-domasnee-zadanie-57-uroka-tgukud/

3

Нужно:

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 и импортировать этот дамп. Как импорт/экспорт делать детально показан в уроках.

1

Точнее, когда запускаю player.php на страничке показывается код!

1

До меня не доходит! Мне SQL-дамп базы (kinomonster.sql) создавать?

И что это значит - "Там в примере файл player.php и html-форме action player.php, иначе либо в action переименовать нужно страницу обработки формы, либо оставить все как есть"

Блин вообще котелок уже не варит!

1

Спасибо!

Sign up or Log in to write an answer