Select из двух таблиц

max74max

Новичок
Здравствуйте. Помогите разобраться почему из таблице 'users' не выбираются значения полей.
В $row['title_urok'] (таблица `uroki`) всё выводится, а в $row['school_name'] (таблица `users`) пусто.
'moderation' относится к таблице `uroki`

PHP:
<?
$limit = "10";
$result = $mysqli->query("SELECT a.* FROM `uroki` a LEFT JOIN `users` b ON a.id_creatora = b.id WHERE moderation = '1' ORDER BY edite_time DESC LIMIT $limit");
while ($row = mysqli_fetch_assoc($result)) {

?>
<tr>
<td class="w1 s_a">
<?= $row['title_urok']; ?>
</td>

<td class="w1 s_a">
<?= $row['school_name']; ?>
</td>
</tr>
<?
}

Добавляю , `users`, вообще всё перестаёт выводиться. Что я делаю не так? Как нужно правильно сделать?
PHP:
$result = $mysqli->query("SELECT a.* FROM `uroki`, `users` a LEFT JOIN `users` b ON a.id_creatora = b.id WHERE moderation = '1' ORDER BY edite_time DESC LIMIT $limit");
 

WMix

герр M:)ller
Партнер клуба
я бы купил книжку по mysql на твоем месте, ты явно не понимаешь смысл написанного к примеру что есть "a" и "b" и почему a.* это только уроки. это понятно хотя бы по выбору имён, которые не помогают а еще больше путают .
помимо всего "LIMIT $limit" это вероятно инъекция, твою программу взломает школьник, те книжку по php не ниже седьмой версии в особенностях работа с базами данных тебе тоже не помешает
 

max74max

Новичок
я бы купил книжку по mysql на твоем месте, ты явно не понимаешь смысл написанного к примеру что есть "a" и "b" и почему a.* это только уроки. это понятно хотя бы по выбору имён, которые не помогают а еще больше путают .
помимо всего "LIMIT $limit" это вероятно инъекция, твою программу взломает школьник, те книжку по php не ниже седьмой версии в особенностях работа с базами данных тебе тоже не помешает
Поэтому я и спрашиваю здесь.

"LIMIT $limit" это вероятно инъекция,
Нет, если сделать так. Это нужно для других целей. И как этот код взломает школьник? Именно поэтому я написал $limit = "10"; вначале, чтобы не вдаваться в эти подробности.


PHP:
if($_GET['limit'] == "50"){
$limit = "50";
}elseif($_GET['limit'] == "100"){
$limit = "100";
}elseif($_GET['limit'] == "10"){
$limit = "10";
}else{
$limit = "10";
}
Решение нашел:
SELECT a.*, b.school_name
 
Последнее редактирование:

Squats

Новичок
почему из таблице 'users' не выбираются значения полей.
Потому, что вы, не выбираете из таблицы users.
Выборка идет только по таблице uroki.
Где a.*, это выборка из вашей таблицы uroki.
То есть, если вы сделаете b.* то логически, должно работать.
Но есть проблема, если будут идентичные колонки, то они заменятся, а это плохо.
По этому лучше выбирать нужные и переименовывать в нужную, чтобы в результате, не было совпадений.
 
Сверху