Как бы я сгруппировал это по навыкам и повторил все фотографии для каждого навыка.
SELECT skills.teacher, skills.student, skills.skill, profile.photo FROM skills INNER JOIN profile ON skills.student = profile.username WHERE teacher = 'teach1' teacher | student | skill | photo ------- | -------- | ------ | ------------ teach1 | student1 | skill1 | student1.jpg teach1 | student2 | skill1 | student2.jpg teach1 | student3 | skill2 | student3.jpg teach1 | student3 | skill1 | student3.jpg teach1 | student4 | skill3 | student4.jpg teach1 | student1 | skill2 | student1.jpg
Я подчеркиваю, что это пример. Я действительно не знаю имен «умения», так как они созданы учениками. Я не знаю, сколько навыков будет указано во всем. Я не знаю, какие пользователи будут добавлять какие навыки к учителям.
Я пробовал в то время как петли и петли foreach. Я просто не могу понять, как сгруппировать это и какой тип цикла использовать …
Мне нужен мой конечный результат, чтобы я мог откликнуться.
<div>skill1 <img src="student1.jpg"> <img src="student2.jpg"> <img src="student3.jpg"> ... ... ... </div> <div>skill2 <img src="student1.jpg"> <img src="student3.jpg"> ... ... ... </div> <div>skill3 <img src="student4.jpg"> ... ... ... </div>
Прежде всего, закажите по умению, чтобы вы их упорядочили:
SELECT skills.teacher, skills.student, skills.skill, profile.photo FROM skills INNER JOIN profile ON skills.student = profile.username WHERE teacher = 'teach1' ORDER BY skills.skill
Назначьте переменную (в данном случае $lastSkill
) вне цикла while. Проверьте, изменилось ли оно и соответствующим образом выводит данные. Взгляните на приведенный ниже пример. Ваш PHP-код будет выглядеть примерно так:
$lastSkill = null; while ( $row = fetchrow() ) { if ( $row['skill'] !== $lastSkill ) { //Don't close a div, if it's the first row if ( $lastSkill !== null ) echo '</div>'; //We've moved onto a new row, echo it out echo '<div>' . $row['skill']; //Store the lastSkill $lastSkill = $row['skill']; } echo '<img src="' . $row['photo'] . '">'; }
SELECT skills.teacher, skills.student, skills.skill, profile.photo FROM skills INNER JOIN profile ON skills.student = profile.username WHERE teacher = 'teach1' Group by skills.skill order by skills.? **ORDER BY WHATEVER YOU WANT PUT IN PLACE OF ?.**