0

今朝、それらの脳の衰退の瞬間の1つを持っています。私は次のphpを持っています:

$imgset = $result->fields[6];
if ($imgset = '')
{
    $imgset = 'logo';
}
else
{
     $imgset = $result->fields[6];
}
echo '<img id="imgdisp" src="/img/'.$imgset.'.jpg" />';
$imgset = '';

データベースからの結果が空白かどうかを確認する場所。空白の場合は、結果の代わりに logo.jpg を配置する必要があります。なんらかの理由で、動作したくないだけで、おそらく完全に盲目になっているのですが、理由がわかりません。$imgset がまだ空白を通過しているかのように、"/img/.jpg" の HTML とファイル名に空白の画像が表示されます。値はSQLでもNULLではありません。他の場所のフォームで_POSTを使用して入力ボックスから入力された空白のエントリであることは間違いありません。

4

7 に答える 7

6

これ:

 if ($imgset = '') {

$imgset常に空に設定されています。代わりに比較を使用します。

 if ($imgset == '') {

$imgsetその場合はすでに として設定されているため、あなたの else も必要ありません$result->fields[6];

于 2013-08-13T08:27:02.283 に答える
2

画像がパスにも存在するかどうかを確認してください

   <?php 
     $imgset = $result->fields[6];
     if ($imgset) {
       $imgset = $result->fields[6];
       $path ='pathtoimages';
       if(!file_exists($path.'/'.$imageset.'.jpg'){
         $imgset = 'logo';
       }
     }
     else
     {
        $imgset = 'logo';
      }
     echo '<img id="imgdisp" src="/img/'.$imgset.'.jpg" />';
     ?>
于 2013-08-13T08:29:46.633 に答える
1

You forgot to compare on the if condition and instead you are assigning an empty value to $imgset. if ($imgset = '') should be if ($imgset == '')

于 2013-08-13T08:26:36.950 に答える
1
$imgset = $result->fields[6];
if ($imgset == '')
{
    $imgset = 'logo';
}

echo '<img id="imgdisp" src="/img/'.$imgset.'.jpg" />';
$imgset = '';

値は最初のステートメントで既に割り当てられているため、else 部分は必要ありません。

于 2013-08-13T08:31:21.667 に答える
0

MYSQL から選択する場合は、次のようなものを使用できます

SELECT *,COALESCE(image,"logo") AS image FROM ....

このようにして、結果が返され、一部の行に NULL 画像がある場合、「ロゴ」に置き換えられるため、PHP で IF ロジックは必要ありません :)

于 2013-08-13T08:35:20.000 に答える
0

三項演算子を使用すると、次のように実行できます。

echo '<img id="imgdisp" src="/img/'.(empty($imgset)?'logo':$imgset).'.jpg" />';

読みやすさを犠牲にして短いコード。

于 2013-08-13T08:27:30.560 に答える
0

これが、条件を逆にしたほうがよい理由です。

if ('' = $imgset)

エラーの原因になります。

答え:

if ('' == $imgset)
//or
if (empty($imgset))
于 2013-08-13T08:31:30.237 に答える