2012-03-22 3 views
0

У меня есть для каждого цикла, как этогопростой PHP Еогеасп петля необходима помощь

 $sn_count = 1; 
     $prodfilter = ""; 
     foreach($prods as $prod){ 
     $prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>"; 
     $sn_count++; 
     } 
     echo $prodfilter; 

Теперь моя проблема моего «продукт» класс отображения границы, даже если $prod['product'][1] не доступно. Поэтому я бы хотел проверить его, используя оператор if.

If (product value available) { 
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>"; 
} 

Я пробовал вот так.

if(!empty($prod['product'][1])) { 
$prodfilter .= "<div class=\"product\">".$prod['product'][1]."</div>"; 
} 

Но его не работает.

+0

Подождите, ваша петля выполняет итерации на '$ steps', но вы тестируете и выводите' $ prod' ... ?? Вы получите то же самое для каждой итерации цикла. –

+0

@ Майкл: Я тоже это заметил, но я предполагаю, что он оставил другой код, чтобы сократить его. –

ответ

1

вы можете попробовать несколько вещей

попробовать это для начала

if(strlen(trim($prod['product'][$sn_count]))>0) { 
$prodfilter .= "<div class=\"product\">".$prod['product'][$sn_count]."</div>"; 
    } 

или

if(isset($prod['product'][$sn_count])) { 
$prodfilter .= "<div class=\"product\">".$prod['product'][$sn_count]."</div>"; 
    } 
+0

Это даст вам предупреждения о том, что ключ не существует, если он не существует. –

+0

Но isset не будет :-) –

+0

thats правый. Грязный трюк состоит в том, чтобы добавить @ в $ prod, чтобы подавить предупреждения;), которые не подходят конечно, будут работать. –

0

Право, что нужно сделать, это проверить, если он пуст, как вы пытались, но так как он терпит неудачу, там, очевидно, есть некоторые данные. Вы можете сделать var_dump и выяснить, что и почему оно есть, что, вероятно, приведет вас к источнику проблемы.

Если вы имеете в виду объявленное значение, то isset - это правильная функция для использования.

1

Правильно, на мой взгляд, было бы проверить, сколько строк вернулось. Я предполагаю, что вы используете MySQL, так как не указали. Если вы не используете его, попросите дополнительную помощь.

http://www.php.net/manual/en/function.mysql-num-rows.php

if (mysql_num_rows($prods)!=0) { 
    //Do your code 
} 

Это следует проверить, если ваш запрос возвращал больше 0 строк (так оно должно быть обращено). Это исправить?

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