max74max
Новичок
Здравствуйте, помогите пожалуйста разобраться и найти ошибку.
Есть таблицы:
и php код
Результатом получаю следующие данные:
Школа 1
Школа 2
Школа 3
Хотя Школа 3 быть не должно, т.к. в таблице `dostup` стоит значение 0
Мне нужно чтобы в первом цикле выбирались все id_creatora которые есть но без повторения, во втором цикле отсеивались все кроме тех, к которым у меня (id_usera =1) есть доступ (dostup = 1). А в третьем цикле выводились названия школ из таблице 'users' исходя из выбранных ранее критериев.
Знаю что нужно использовать подготовленные выражения, но хотелось бы понять в чем причина ошибки именно в этом примере. Мне не совсем понятна логика.
Есть таблицы:
PHP:
INSERT INTO `razdely` (`id`, `id_creatora`, `razdel`) VALUES
(1, '7', '11'),
(2, '9', '12'),
(3, '9', '13'),
(4, '9', '14'),
(5, '41', '15');
INSERT INTO `dostup` (`id`, `id_usera`, `id_creatora`, `razdel`, `dostup`) VALUES
(1, '1', '7', '11', '1'),
(2, '1', '9', '12', '1'),
(3, '1', '41', '15', '0');
INSERT INTO `users` (`id`, `school_name`) VALUES
(7, 'Школа 1'),
(9, 'Школа 2'),
(41, 'Школа 3');
PHP:
$baza_id = "1"; //мой id
$result = $mysqli->query("SELECT DISTINCT id_creatora FROM `razdely` ORDER BY id DESC");
while ($row = mysqli_fetch_assoc($result)) {
$result1 = $mysqli->query("SELECT * FROM `dostup` WHERE `id_usera` = '".$baza_id."' && `dostup` = '1' ORDER BY id ASC LIMIT 1"); // !!! ошибка в этой строке
if ($result1->num_rows >= 1) {
$result2 = $mysqli->query("SELECT * FROM `users` WHERE `id` = '".$row[id_creatora]."' ORDER BY id ASC LIMIT 1");
while ($row2 = mysqli_fetch_assoc($result2)) {
echo $row2["school_name"]."<br>";
}
}
}
mysqli_free_result($result);
mysqli_free_result($result1);
mysqli_free_result($result2);
Школа 1
Школа 2
Школа 3
Хотя Школа 3 быть не должно, т.к. в таблице `dostup` стоит значение 0
Мне нужно чтобы в первом цикле выбирались все id_creatora которые есть но без повторения, во втором цикле отсеивались все кроме тех, к которым у меня (id_usera =1) есть доступ (dostup = 1). А в третьем цикле выводились названия школ из таблице 'users' исходя из выбранных ранее критериев.
Знаю что нужно использовать подготовленные выражения, но хотелось бы понять в чем причина ошибки именно в этом примере. Мне не совсем понятна логика.