Я пытаюсь получить некоторые данные из моей базы данных, где у меня есть соединение. У меня есть 3 таблицы:Извлечение данных из реляционных таблиц
пользователи колонки = user_id кошки столбец = cat_id user_cat_join колонны-user_is & cat_id
В таблице user_cat_join связаны с соответствующими таблицами.
Я пытаюсь получить данные из таблицы, чтобы показывать только категории, назначенные пользователю. Я зарегистрирован как. Итак, я получаю идентификатор пользователей из функции сеанса, а затем пытаюсь извлечь нужные мне данные.
требуется ('../db_con.php');
// BUILD AND DISPLAY THE CATEGORY LIST (RICOH BUILD)
function build_cat_list()
{
global $dbc;
// DEFINE THE QUERY:
$user = $_SESSION['user'];
$q = "SELECT cat_name, cat_icon, cat_color
FROM cats
INNER JOIN user_cat_join
ON cats.cat_id = user_cat_join.cat_id
WHERE user_cat_join.user_id = $user";
$r = mysqli_query ($dbc, $q); // Run the query.
// FETCH AND PRINT ALL THE RECORDS
while ($row = mysqli_fetch_array($r)) {
echo '
<a href="view_cat.php?cat_id='.$row["cat_id"].'">
<div class="indexBox"">
<div class="indexBoxHeader" style="background-color:'.$row["cat_color"].'"><p>'
.$row["cat_icon"].'</p>
</div>
<div class="indexBoxFooter">
<p>'.$row["cat_name"].'</p>
</div>
</div>
</a>';
}
}
при отображении этого вопроса я получаю следующее сообщение об ошибке?
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\MAMP\htdocs\home.php on line 33
выше ссылается это:
while ($row = mysqli_fetch_array($r)) {
Я сделал somre дополнительных сообщений об ошибках и, делая это:
if($r === FALSE) {
printf(mysqli_error($dbc));
exit();
}
Я получаю это:
Неизвестного column '5ad3e66c5e1e7747707c480dca04fc85' in 'where clause'
Я понятия не имею, к чему это относится?
UPDATE
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
// BUILD AND DISPLAY THE CATEGORY LIST (RICOH BUILD)
global $dbc;
// DEFINE THE QUERY:
$user = $_SESSION['user'];
$q = sprintf("
SELECT
cat_name, cat_icon, cat_color
FROM
cats
INNER JOIN
user_cat_join
ON
cats.cat_id = user_cat_join.cat_id
WHERE
user_cat_join.user_id = '%s'
",
mysqli_real_escape_string($dbc, $user)
);
$r = mysqli_query ($dbc, $q); // Run the query.
if($r === FALSE) {
printf(mysqli_error($dbc));
}
// FETCH AND PRINT ALL THE RECORDS
while ($row = mysqli_fetch_array($r)) {
var_dump($row);
echo '
<a href="view_cat.php?cat_id='.$row["cat_id"].'">
<div class="indexBox"">
<div class="indexBoxHeader" style="background-color:'.$row["cat_color"].'"><p>'
.$row["cat_icon"].'</p>
</div>
<div class="indexBoxFooter">
<p>'.$row["cat_name"].'</p>
</div>
</div>
</a>';
}
?>
http://stackoverflow.com/questions/15439919/mysqli-fetch-array-expects-parameter-1-to-be-mysqli-result -boolean-given-in –