2017-03-28 11 views
-3

私は基本的なディスプレイのphpテーブルをイメージ用に持っていますが、テーブルのいくつかのカラムは空です。 Php Mysqlはエコーの空の列を無視します

$result = mysql_query("SELECT * FROM table2 
    WHERE bid=$bid 
    AND fhid=$fhid 
    ") or die(mysql_error()); 

echo "<table align='center'>"; 
while($row = mysql_fetch_array($result)) { 
    echo "<tr><td>"; 
    echo '<a href="'.$row['photo1'].'"target="_blank"><img src="'.$row['thumb1'].'" width="180" height="250" alt="'.$row['name'].' '.$row['alttext'].'"/></a>'; 
    echo "</td><td>"; 
    echo '<a href="'.$row['photo16'].'"target="_blank"><img src="'.$row['thumb16'].'"width="180" height="250"alt="'.$row['name'].' '.$row['alttext'].'"/></a>'; 
    echo "</td><td>"; 
    echo '<a href="'.$row['photo2'].'"target="_blank"><img src="'.$row['thumb2'].'" width="180" height="250"alt="'.$row['name'].' '.$row['alttext'].'"/></a>'; 
    echo "</td></tr>"; 
} 
echo "</table>"; 

例えばphoto16を持つ行がdbテーブルに空だった場合

は、どのように私は、ページ上で不足している画像を表示せずに画像をスキップして、写真2へ運ぶためにこのスクリプトを変更することができます。

私はすべての行を表示することを停止するので、すべての周りをチェックし、NULLと幸運を持っていませんでした。前もって感謝します。

+5

最初の**停止**は、 'mysql_ *' APIを使用しています。準備された文とともにmysqli_ *や 'PDO'を使います。 2番目のファイルが存在する場合は、あなたがしなければならないし、リンクを作成するかどうかを決定します – Jens

+1

[リトルボービー](http://bobby-tables.com/)*** [あなたのスクリプトは、SQLインジェクション攻撃のリスクがある。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)***。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –

答えて

0

VAR ISSETあなたは($行[ 'photo16を'])controllする必要がある場合にだけチェック

if (isset($row['photo16']) && strlen($row['photo16']) > 0) { 
     echo '<a href="'.$row['photo16'].'"target="_blank"> 
       <img src="'.$row['thumb16'].'"width="180" height="250"alt="'. 
        $row['name'].' '.$row['alttext'].'"/></a>'; 
    } 
+0

あなたの提案は正しいが、(もし私がcorreclyを理解している)質問が単一の画像に関連していると思われ、すべての行には関係していないようだ...私は間違っているかもしれない。 – scaisEdge

+0

私はそれについてもっと考えました、そして、OPは行ではなく列をスキップすることを話しているようです。 OPが何であるかを達成するには、whileループ内の列をループさせる必要があります。 –

+0

彼はフォト16をスキップすることについて話していますが、写真2を見せてください..これは..私はこの答えを提案しました.. OPにもっと聞くべきです.. .. – scaisEdge

0

行が空でない場合は、whileサイクル内に条件を追加してみます。 !空()関数で

if(!empty($row)){ 
echo "<table align='center'>"; 
echo "<tr><td>"; 
echo '<a href="'.$row['photo1'].'"target="_blank"><img src="'.$row['thumb1'].'" width="180" height="250" alt="'.$row['name'].' '.$row['alttext'].'"/></a>'; 
echo "</td><td>"; 
echo '<a href="'.$row['photo16'].'"target="_blank"><img src="'.$row['thumb16'].'"width="180" height="250"alt="'.$row['name'].' '.$row['alttext'].'"/></a>'; 
echo "</td><td>"; 
echo '<a href="'.$row['photo2'].'"target="_blank"><img src="'.$row['thumb2'].'" width="180" height="250"alt="'.$row['name'].' '.$row['alttext'].'"/></a>'; 
echo "</td></tr>"; 
} 
+0

OPは、空の値がある列を除外したいだけです。 @JayBlanchard。 –

0

チェック

以下のように:このような何か。空でない場合は、それは印刷されます

if (!empty($row['photo16']) > 0) { 
     echo '<a href="'.$row['photo16'].'"target="_blank"> 
       <img src="'.$row['thumb16'].'"width="180" height="250"alt="'. 
        $row['name'].' '.$row['alttext'].'"/></a>'; 
    } 
関連する問題