prrrrrrr
@prrrrrrr
Верстаю сразу на PHP.

Как правильно сделать сравнение из двух таблиц?

Например. Есть 2 таблицы, modules и lessons.

Табл. modules:
id | name
5 | vvedenie


Табл. lessons:
id | name | module_id
7 | start | 5


И если module_id совпадает с id из табл. modules — выводить. Пробую так, нет реакции:

<?php
	$modules = R::findAll('modules', 'id = ?');
	$lessons = R::findAll('lessons', 'module_id = ?');
	
	if ($modules == $lessons) {
	foreach ($modules as $module) {
	    foreach ($lessons as $lesson) {
	echo '
	<p>Модуль №', ++$i,' | ', $module->name,'</p>
	<p>Урок: ', $lesson->name, '</p><br/>
    ';}}}
	?>
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
AnatolTh
@AnatolTh
Full Stack Developer
<?php
	$modules = R::findAll('modules', 'id = ?');
	$lessons = R::findAll('lessons', 'module_id = ?');
  
	foreach ($modules as $module) {
		foreach ($lessons as $lesson) {
			if ( $lesson->module_id == $module->id ) {
				echo '
				<p>Модуль №', ++$i,' | ', $module->name,'</p>
				<p>Урок: ', $lesson->name, '</p><br/>
				';
			}
		}
	}
?>


Конечно FanatPHP прав и данную задачу лучше решать примерно так:
select
  m.name as `module`,
  l.name as `lesson`
from modules m
left join lessons l ON l.module_id = m.id
where l.id is not null

Но к сожалению с Redbean я не работал, так что перепишите запрос сами
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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