2017-05-22 16 views
0

オプション1、オプション2、オプション3、オプション4、オプション5を持つデータベースを列として持つ。オプション1〜3はデータが入力されていますが、オプション4〜5はNULLです。データベースエントリがnullの場合、divを表示しない

データベースのオプションがNULLの場合、divが表示されないように設定するにはどうすればよいですか?

PHPコード:

$sql = "SELECT option1, option2, option3, option4, option5 FROM options"; 
     $result = mysqli_query($conn, $sql); 
     $null = NULL; 

     if (mysqli_num_rows($result) > 0) { 
      while($row = mysqli_fetch_assoc($result)) { 
       if ($result != $null) { 
        echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option1"]. '</div2>' . '</div>'; 
       } 
       else { 
        echo '<div class="null"></div>'; 
       } 
       if ($result != $null) { 
        echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option2"]. '</div2>' . '</div>'; 
       } 
       else { 
        echo '<div class="null"></div>'; 
       } 
       if ($result != $null) { 
        echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option3"]. '</div2>' . '</div>'; 
       } 
       else { 
        echo '<div class="null"></div>'; 
       } 
       if ($result != $null) { 
        echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option4"]. '</div2>' . '</div>'; 
       } 
       else { 
        echo '<div class="null"></div>'; 
       } 
       if ($result != $null) { 
        echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option5"]. '</div2>' . '</div>'; 
       } 
       else { 
        echo '<div class="null"></div>'; 
       } 
       ... 

CSSコード:でもオプション4-5のため現時点では

.null { 
    display: none; 
} 

、DIV CLASS = "nullが" 作業とされていないのdivクラス= "行"が表示されています(高さ= 70ピクセル)が空白です。おかげさまで

答えて

1

実際のクエリを個々の列ではなくヌルと比較しています。

$result = mysqli_query($conn, $sql); 

上記ラインはmysqliの結果オブジェクトではなく、行または列を返す - この

if ($row['option1'] != null) { 
    echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option1"]. '</div2>' . '</div>'; 
} else { 
    echo '<div class="null"></div>'; 
} 
if ($row['option2'] != null) { 
    echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option2"]. '</div2>' . '</div>'; 
} else { 
    echo '<div class="null"></div>'; 
} 

このコードは、比較することを見るように、各行を保持ループであなた$row変数を使用しますnullと比較した場合、$resultの代わりにnull$row['option1']を使用してください。

divがまったく表示されないため、行がない場合は何もしないでください。

if ($row['option1'] != null) { 
    echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option1"]. '</div2>' . '</div>'; 
} 
if ($row['option2'] != null) { 
    echo '<div class="row">' . '<div1></div1>' . '<div2>' . $row["option2"]. '</div2>' . '</div>'; 
} 
0

私はちょうど<div></div>の賛成で<div1></div1> -ishマークアップを捨てると思いますが、私は、これはあなたが後にしている何を考えています。

<?php 
$sql = 'SELECT option1, option2, option3, option4, option5 FROM options'; 
$result = mysqli_query($conn, $sql); 


while($row = mysqli_fetch_array($result)) { 
    foreach($row as $option) { 
     if (!empty($option)) { 
      printf(' 
       <div class="row"> 
        <div1></div1> 
        <div2>%s</div2> 
       </div> 
      ', $option); 
     } 
    } 
} 
関連する問題