2013-06-27 6 views
1

Как говорится в названии, я хочу скрыть элемент, имя продукта не существует.Скрытие элемента, если имя продукта не существует

Проблема здесь. Когда она показывает продукты для пользователя, она фактически ничего не показывает, где // показывается ничего, вместо того, чтобы показывать новый продукт с именем продукта.

Так что когда-то оно показывает 10 продуктов, когда-то оно показывает 5 продуктов, чего я не хочу.

Я хочу, чтобы он показывал новый продукт, если имя продукта отсутствует.

Любые подсказки о том, что я изменяю в своем коде?

мой текущий код:

выборка 12 случайного продукта из базы данных:

$dynamicList = ""; 
$sql = mysql_query("SELECT * FROM products ORDER BY RAND() LIMIT 12"); 

показывает продукты для пользователя:

if($product_name == ''){ 

     //Show nothing 

     }else{ 
    $dynamicList .= 
       '<table border="0" id="indexproducts" style="margin-left:22px; margin-bottom:20px;"> 
        <tr> 
        <td id="indexproductfoto" align="center"> 
         <a href="http://www.mysite.com/id/'.$id.'/'.$seo8.'/"> 
          <img src="http://www.mysite.com/inventoryimages/'.$id.'.jpg" onerror="this.src=\'http://www.mysite.com/inventoryimages/x.jpg\';" /> 
         </a> 
        </td> 
        </tr> 
        <tr> 
        <td id="indexproducttext2"><strong>'.$product_name.'</strong><br /> 
        </td> 
        </tr> 
        <tr> 
        <td style="color:#F00" id="indexproducttext"><strong>Pris: '.round($price).':-</strong></td> 
        </tr> 
        <tr> 
        <td style="color:#F00" id="indexproducttext"><strong>(Exkl.moms: '.round($price1).':-)</strong></td> 
        </tr> 
        <tr> 
        <td id="indexproducttext"><a href="http://www.mysite.com/id/'.$id.'/'.$seo8.'/">Produktinformation</a></td> 
        </tr> 
       </table>'; 
    } 
    } 
+0

SELECT * FROM продуктов WHERE product_name <> "" ORDER BY RAND() LIMIT 12 – iiro

+0

@iiro сообщение, что в качестве ответа. – Barmar

+0

BTW, 'ORDER BY RAND()' обычно не является хорошей идеей. См. Http://stackoverflow.com/questions/1244555/how-can-i-optimize-mysqls-order-by-rand-функция для альтернативы. –

ответ

1

Как я заметил

попробовать этот SQL запрос

SELECT * FROM products WHERE IFNULL(productname, "") <> "" ORDER BY RAND() LIMIT 12 

где оператор <> средство «не равно», то же самое, что и != Итак, вы ищете все продукты, имя которых не пусто и чье имя не NULL.

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_not-equal

+0

Спасибо, друг! Это было действительно оценено, и теперь вопрос может быть установлен и на ответ! –

0

Я хотел бы предложить, чтобы просто переписать запрос что возвращаются только продукты с именем продукта.

SELECT * FROM продуктов WHERE PRODUCTNAME NOT NULL ORDER BY RAND() LIMIT 12

+0

Это на самом деле хорошая идея, однако с ORDER BY RAND() она не работает. –