Как отразить inner join на php?

0
0

SELECT * FROM `descriptions` INNER JOIN movie ON descriptions.movie_id=movie_id  этот запрос работает на phpmyadmin

а когда  вызываю так на сайте нет данных
$query = $mysqli->query("SELECT * FROM `descriptions`INNER JOIN movie ON descriptions.movie_id = movie.id");


Тумарым Ибрагим

10 months ago

Похожие вопросы

8 ответов





$query через var_dump выводите?

<?php
  var_dump($query);
?>

Можно алиасы в select использовать, так как одинаковые данные есть в movie и descriptions

$query = $mysqli->query("SELECT movie.id as m_id, descriptions.id as d_id,  descriptions.name as d_name FROM `descriptions`INNER JOIN movie ON descriptions.movie_id = movie.id");

Потом в цикле $row['d_name'] - это descriptions поле name название фильма, если в базе называется name поле где хранятся фильмы.

Где-то здесь пример находил с categories и movies с использованием алиасов, себе сохранил:

$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>';
}

student_Jw6CEVsI

10 months ago

я даже не знаю че такое var_dump я новичок))

Тумарым Ибрагим

10 months ago

var_dump - это почти тоже самое, что и print_r. Результат $query - это просто массив, который можно вывести через тот же print_r как здесь показано:

https://fructcode.com/ru/courses/php-and-mysql/interactive-multidimensional-arrays/

Виталий Савкин

10 months ago

<?php
$mysqli= new mysqli('localhost','root','','kinomonster');

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
if (!$mysqli) {
echo "Fehler: konnte nicht mit MySQL verbinden." . PHP_EOL;
echo "Debug-Fehlernummer: " . mysqli_connect_errno() . PHP_EOL;
echo "Debug-Fehlermeldung: " . mysqli_connect_error() . PHP_EOL;
exit;
}

echo "Erfolg: es wurde ordnungsgemäß mit MySQL verbunden! Die Datenbank \"datenbank\" ist toll." . PHP_EOL;
echo "Host-Informationen: " . mysqli_get_host_info($mysqli) . PHP_EOL;


$query = $mysqli->query("SELECT movie.id as m_id, descriptions.id as d_id, descriptions.name as d_name FROM `descriptions`INNER JOIN movie ON descriptions.movie_id = movie.id");


while ( $row = mysqli_fetch_assoc($query) ) {
echo $row['id'].$row['movie_id'].'<br>';
}
mysqli_close($mysqli);


?> 

вот база успешно подключилась но данных нет(((

Тумарым Ибрагим

10 months ago

Пробел должен быть:

 `descriptions`INNER

student_aOGAOlL6

10 months ago

я поставила и тут убрала кавычки  `descriptions` все рано данных нет к базе подключилась   а данных нет 

Тумарым Ибрагим

10 months ago

вместо localhost должно быть 127.0.0.1

Амир Суралиев

7 months ago

<?php

$mysqli = new mysqli ('localhost', 'root', '', 'kinomonster');

if (mysqli_connect_error()) {
print("Не удалось установить соединение");
exit();
}

$mysqli -> set_charset('UTF8');

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

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


?>

Mariam Vardazaryan

6 months ago

Ваш ответ