1
1

Добрый день. Изучил урок 59 php. Создал таблицу description, но вот не получаеться написать запросы на PHP и вывести данные в браузер. Что делать? 

<?php

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');
if(mysqli_connect_errno()) {
prinf("Соединение установлено", mysqli_connect_error());
exit();
}
$mysqli->set_charset('utf8');
$sql = "SELECT * FROM description INNER JOIN movie ON movie.description_id=description.id";
$sql = "SELECT * FROM categories INNER JOIN movie ON movie.category_id=categories.id"

$query = $mysqli->query('SELECT * FROM movie, description, categories');

while ($row = mysqli_fetch_assoc($query)) {
echo $row['name'].$row['year'].$row['description_id'].$row['category_id']."<br>";
}

$mysqli->close();
?>

Спасибо.


student_4TLQ001Z
6 years ago






включите вывод ошибок в phph на экран и посмотрите что выдает

Включить вывод уведомлений и предупреждений можно, добавив в начало нужного .php файла следующие строки:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

Pavel Lazarev
6 years ago

Попробую спасибо

student_4TLQ001Z
6 years ago

Все равно не могу понять как сделать запрос в php и вывести данные из нескольких таблиц. 

Что я упускаю ? 

<?php
$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');
if(mysqli_connect_errno()) {
prinf("Соединение установлено", mysqli_connect_error());
exit();
}
$mysqli->set_charset('utf8');


$sql = "SELECT * FROM description INNER JOIN movie ON movie.description_id=description.id";


$query = $mysqli->query('SELECT * FROM movie');

while ($row = mysqli_fetch_assoc($query)) {
echo $row['name'].$row['year'].$row['description_id'].$row['category_id']."<br>";
}

$mysqli->close();
?>

На выходе получаеться так 

Матрица199911
Интерстеллар201421
Безумный Макс199031
Во все тяжкие200742

последняя цифра из таблицы с категориями фильмы или сериалы 

предпоследняя это описание взятые из таблицы с описаниями фильмов

student_4TLQ001Z
6 years ago

У вас здесь запрос выполняется $query = $mysqli->query('SELECT * FROM movie'); 

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

$query = $mysqli->query($sql); 

или так $query = $mysqli->query('SELECT * FROM description INNER JOIN movie ON movie.description_id=description.id'); 

Pavel Lazarev
6 years ago

При таком написании получаеться вот так

Матрица199911
Интерстеллар201421
Безумный Макс199031
Во все тяжкие200742

Где последняя цифра из таблицы с категориями фильмы или сериалы 

предпоследняя это описание взятые из таблицы с описаниями фильмов

А хотелось бы чтобы вывод был следующий 

Матрица1999Жизнь Томаса Андерсона разделена на две части...Фильм

Во все тяжкие2007Школьный учитель химии Уолтер Уайт узнаёт, что бол...Сериал

и т..д. 

Есть 3 таблицы:

1 таблица movie

id name description_id year add_date category_id

1 Матрица 1 1999 2018-12-25 1
2 Интерстеллар 2 2014 2018-12-25 1
3 Безумный Макс 3 2015 2018-12-26 1
4 Во все тяжкие 4 2007 2018-12-28 2


2 таблица description


id description


1 Жизнь Томаса Андерсона разделена на две части: днё...
2 Когда засуха приводит человечество к продовольстве...
3 Преследуемый призраками беспокойного прошлого, Мак...
4 Школьный учитель химии Уолтер Уайт узнаёт, что бол...


3 таблица categories

id name

1 Фильмы
2 Сериалы

Как правильно сделать запрос на php чтобы выводилось описание и категория фильмов .

Сейчас у меня код

<?php

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');
if(mysqli_connect_errno()) {
prinf("Соединение установлено", mysqli_connect_error());
exit();
}
$mysqli->set_charset('utf8');
$sql = "SELECT * FROM description INNER JOIN movie ON movie.description_id=description.id";
$query = $mysqli->query('SELECT * FROM description INNER JOIN movie ON movie.description_id=description.id');

while ($row = mysqli_fetch_assoc($query)) {
echo $row['name'].$row['year'].$row['description_id'].$row['category_id']."<br>";
}

$mysqli->close();
?>

Спасибо

student_4TLQ001Z
6 years ago

"$query = $mysqli->query('SELECT * FROM description INNER JOIN movie ON movie.description_id=description.id'); 

При таком написании получаеться вот так

Матрица199911
Интерстеллар201421
Безумный Макс199031
Во все тяжкие200742"

естественно что вывод тот же остался - он и выводит то же самое

в выводе

echo $row['name'].$row['year'].$row['description_id'].$row['category_id']."<br>"; 

поменять если 'description_id' на 'description' - то будет выводиться описание вместо его id

Pavel Lazarev
6 years ago

В данном случае будет выводиться только название, год и  описание фильмов, а как сделать так чтобы выводилось ещё и категория (фильмы или сериалы)?

student_4TLQ001Z
6 years ago

7 ответов