php
2013-08-18 6 views -1 likes 
-1

При повторении результатов от fetch_assoc я wold хотел пропустить пустые (NULL) результаты. Мой код теперь:php fetch_assoc пропустить пустые результаты

while ($rowsoft = $resultsoft->fetch_assoc()) { 
echo "<table class='swtable' cellspacing='0' summary='Software table'> 
<tbody> 
<tr><td class='software_up'><a class='sw' href='software.php?id=" . $rowsoft['id'] . "'>" . $rowsoft['title'] . "</a></td></tr> 
<tr><td class='software'><div class='tags'>Tags: </div><a class='tags' href='#'>" . $rowsoft['tag_1'] . "</a> 
<a class='tags' href='#'>" . $rowsoft['tag_2'] . "</a><a class='tags' href='#'>" . $rowsoft['tag_3'] . "</a></td></tr> 
} 

Но не всегда есть результат за $ rowsoft [ 'tag_1'] или $ rowsoft [ 'TAG_2'] или $ rowsoft [ 'TAG_3']. Как изменить эхо-сигнал внутри fetch_assoc(), чтобы он работал только в том случае, если есть результат? Или я должен использовать foreach или что-то еще?

Спасибо

+6

Почему бы не исключить их в sql-запросе – Musa

+0

Если вы решили проблему, не добавляйте * «разрешено» * к названию вопроса, но считайте [принятие ответа] (http: // meta .stackexchange.com/a/5235/224130). –

ответ

0

Я получил его, изменив SQL:

select 
...  
    (select concat('<a href=\'#\' class=\'tags\'>',t.tag_bg,'</a>') from tags t where t.id=s.tag1) tag_1, 
    (select concat('<a href=\'#\' class=\'tags\'>',t.tag_bg,'</a>') from tags t where t.id=s.tag2) tag_2, 
    (select concat('<a href=\'#\' class=\'tags\'>',t.tag_bg,'</a>') from tags t where t.id=s.tag3) tag_3 
from software where... 

, а затем внутри FETCH_ASSOC():

<tr><td class='software'><div class='tags'>Tags:</div>" . $rowsoft['tag_1'] . "" . $rowsoft['tag_2'] . "" . $rowsoft['tag_3'] . "</td></tr> 

Прекрасно работает, спасибо за советы!

0

Вы можете исключить их из запроса, как говорит @Musa. Это, вероятно, лучший способ, как DB выполняет работу. Вы также можете сделать с кучей тестов if if, если $ rowsoft ['tag_1'] равно null, тогда не выполняйте эхо.

 Смежные вопросы

  • Нет связанных вопросов^_^