wolverine777
@wolverine777

Как вывести строку если в базе пусто?

Привет, у меня есть страница на которой выводятся оценки для музыкальных альбомов. Соотственно, для некоторых оценка есть, а для некоторых - нет.

Я, как новичок, смог достучаться до объекта и вывести те оценки, которые существуют в БД, а вот для тех альбомов в которых пусто - моё сообщение выводится но при этом вылазит ошибка о том что "информации нет" (см. скрин)

60156ac602d3e530822262.png

Как эту ошибку убрать? if else не помогает :(((

Спасибо!

<?php

// Connection to a database

	$connect=connection();	

// SQL request 1 - for ALBUMS

	$sql="
	select * 
	from album
	";	

// Execution 1

    $result=$connect->query($sql);

// SQL request 2 - for ARTISTS

	$sql2="
	select * 
	from artiste
	";	

// Execution 2
    $result2=$connect->query($sql2);

// SQL request 3 - for NOTES

	$sql3="
    SELECT 
        idOeuvre, 
        ROUND(AVG(note)) AS average
    FROM noter
    GROUP BY idOeuvre
	";	

// Execution 3

	$result3=$connect->query($sql3);

// Loop to arrange results in an object

?><div class="row">

<table >
    <thead>
        <tr>
            <th >TITRE</th>
            <th >Artiste</th>
            <th >Note moyenne</th>
        </tr>
    </thead>

<?php while($albums=$result->fetch(PDO::FETCH_OBJ)) { ?>    

    <tbody>
        <tr>
            <td><a href="description.php?choice=<?php echo $albums->id; ?>"><h5 class="card-title"><?php echo $albums->Titre; ?></h5></a></td>
            <td><h5 class="card-title"><?php $artists=$result2->fetch(PDO::FETCH_OBJ); echo $artists->Nom; ?></h5></td>
            <td><h5 class="card-title">
			
			<?php $notes=$result3->fetch(PDO::FETCH_OBJ); 
			
			$av = $notes->average;
			
			if ($av!=null) {
				echo $notes->average;
			} 
			else {
				echo "pas de note...";
			} ?></h5>
			
			</td>
			
        </tr>
    </tbody>

<?php } ?>

</table>

</div>
  • Вопрос задан
  • 64 просмотра
Решения вопроса 2
no_one_safe
@no_one_safe
Вам на null проверять не $av надо, а $notes. И лучше не null, а is_object
Ответ написан
BorLaze
@BorLaze
Java developer
Можно сделать проще и слегка переписать запрос
$sql3="
    SELECT 
        idOeuvre, 
        IFNULL(ROUND(AVG(note)), 0) AS average
    FROM noter
    GROUP BY idOeuvre
  ";

Тогда в случае, если оценок нет, просто вернется 0 - он же и покажется.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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