Задать вопрос
shipilovmisha
@shipilovmisha
Учу php, нуб))

Как изменить код, чтоб получить верный результат?

Вообщем надо изменить так, чтоб выводило название книги один раз(на картинке выводит два, как видите) а автора выводило в одну строчку.
<?php
$mysqli=new Mysqli('localhost','root','548280','Misha');
$mysqli->query("SET NAMES 'UTF8'");
$g=$mysqli->query("SELECT authors.f_name, authors.s_name,books.b_name  FROM authors 
	JOIN author_books ON authors.id=author_books.author_id JOIN 
	books ON books.id=author_books.book_id WHERE authors.f_name='Дмитрий' OR authors.s_name LIKE 'А%' GROUP BY authors.f_name,authors.s_name");
$result=[];
while($b=mysqli_fetch_assoc($g)){
	$result[]=$b;
}
?>
<h4>Книги, имя авторов которых Дмитрий или фамилия на А</h4>
<table border="1">
	<tr>
		<th>Книгa</th>
		<th>Автор</th>
	</tr>
<?php
foreach($result as $v){
	echo '<tr>
			<td>'.$v['b_name'].'</td>
			<td>'.$v['f_name'].' '.$v['s_name'].'</td>
                            
		</tr> ';
}
?>

12a701559b5440679ab8a9ab83f4fe1a.png3e5c00beadcb4cb19e6a61bc533028f5.pngf8272ee3600049d6baf3c81c4852a338.pngc7bb284a47d1461793c8f58f558fab6b.png
  • Вопрос задан
  • 2386 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
olegtytarenko2
@olegtytarenko2
разработываю саты на cms PHP. Сейчас практикую yii
$g=$mysqli->query("SELECT authors.f_name, authors.s_name,books.b_name  FROM authors 
  JOIN author_books ON authors.id=author_books.author_id JOIN 
  books ON books.id=author_books.book_id WHERE authors.f_name='Дмитрий' OR authors.s_name LIKE 'А%' GROUP BY authors.f_name,authors.s_name");


вот так
$g=$mysqli->query("SELECT CONCAT(authors.f_name,' ',authors.s_name) as name, books.b_name  FROM authors 
  JOIN author_books ON authors.id=author_books.author_id JOIN 
  books ON books.id=author_books.book_id WHERE authors.f_name='Дмитрий' OR authors.s_name LIKE 'А%' GROUP BY name");


Выход будет таким
foreach($result as $v){
  echo '<tr>
      <td>'.$v['b_name'].'</td>
      <td>'.$v["name"].'</td>
                            
    </tr> ';
}
Ответ написан
Ваш ответ на вопрос

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

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