PHP/MYSQL Домашнее задание к уроку 60

0

Создал таблицу Descriptions с описаниями фильмов и сериалов, написал программу по выведению всех данных на страницу браузера. Вместо описание и категории выводится id описания и категории... Файл db.php - подключение к базе данных.

<?php
	include('db.php');
	$query = $mysqli->query('SELECT * FROM `movie` LEFT JOIN descriptions USING (id)');
	while ($row = mysqli_fetch_assoc($query)) {
		echo $row['name'].$row['description_id'].$row['year'].$row['category_id']."<br>";
	}
?>
php
Mysql

4 ответов

1

Применил алиасы, выдаёт ошибку... Не знаю, как исправить. Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\kinomonster\homework.php on line 7

<?php
	include('db.php');
	$query = $mysqli->query('SELECT movie.id as mov_id, categories.id as cat_id, movie.name as mov_name, categories.name as cat_name, movie.year as mov_year, descriptions.id as des_id, descriptions.name as des_name FROM `movie`
LEFT JOIN categories ON categories.id = movie.category_id
LEFT JOIN descriptions ON descriptions.id = movie.description_id');

while ( $row = mysqli_fetch_assoc($query) ) {
    echo $row['mov_name'].$row['cat_name'].$row['mov_year'].$row['des_name'].'<br>';
}
 $mysqli->close();
?>
2

Вот мой код, начиная с запроса, где $row['description'] - название колонки с описаниями из таблицы descriptions; $row['category'] - название колонки с категориями фильмов из таблицы categories (в уроке она у нас была названа name):

$query = $mysqli->query("SELECT * FROM movie JOIN descriptions ON movie.description_id = descriptions.id JOIN categories ON movie.category_id = categories.id");
	

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

	$mysqli->close();


?>
1

Когда Join делаете, нужно в SELECT указывать имена полей и алиасы, если в таблицах совпадают названия полей. 

Здесь пример есть:

https://fructcode.com/ru/qa/urok-60-zadanie-p-4-kak-vyvesti-2-pola-name-v-brauzer-zrfhqs/

2

Скиньте MySQL дамп, посмотрю в чем проблема

Sign up or Log in to write an answer