2

私は最近 Javascript の学習を始めましたが、まだこの分野の専門家ではありません。
だから、クラウドが私を助けてくれるかどうか疑問に思っていました。

MySql データベースと PHP を使用してポートフォリオ サイトを構築しています

私のデータベース テーブルには 3 つのコロンがあります: name, small_image, description.

と を抽出するように PHP をセットアップしましnamesmall_image

$name       = htmlentities( $row['name'] );
$image_small    = "images/" . $row['image_small'];

そして、次のようにエコーします:

$name
< img src='$image_small' with='$width' height='$height' />

私の唯一の問題は、管理ページに移動して、サイトに画像のない新しい作品を追加すると、空のスペースが表示されることです。

私がやりたいことは、不足している画像を置き換えることができる画像を持つことですか?

それを機能させる方法はありますか?またはそれを行うためのより良い、簡単な方法はありますか?

ほんとうにありがとう 。

完全なコードはここでは動作しません。

< - - - - - - - - - - - - - - - - - - フルコード - - - - - - - - - - - - - - - >

    // Loop through all of the records returned from the query
    while( $row = mysql_fetch_array( $results ) ) {
        // collect data from each field
        $id         = $row['id'];
        $name       = htmlentities( $row['name'] );
        $desc_short     = htmlentities( $row['desc_short'] );           

        if(isset( $row['image_small'])){
            $image_small = "images/jewelry/small/" . $row['image_small'];
        }

        else{
            $image_small = "images/blank.jpg";
        }


echo "

        <li class='column_$x $last_row_class'>
        <a href='details.php?id=$id'>
            <img src='$image_small' with='$width' height='$height' />
        </a>
        <p class='product_name'><a href='details.php?id=$id'>$name</a></p>
        <p class='product_desc'>$desc_short</p>
        $rating_div
        </li>";
4

4 に答える 4

1

データベースからの画像が存在しない場合は、空白の画像 (デフォルトの画像) を表示する必要があります。例えば

$name = htmlentities( $row['name'] ); 
if(isSet($row['image_small'])){
         $image_small = "images/" . $row['image_small'];
}
else{
    $image_small = "images/blank.jpg";
}

注: 画像フォルダーに blank.jpg を配置する必要があります。

画像をシステム フォルダにアップロードする場合は、データベースに画像名を保存することをお勧めします。または、次のようにフォルダー内の画像ファイルを確認できます。

<?php
$filename = "images/" . $row['image_small'];

if (!file_exists($filename)) {
     $image_small = "images/blank.jpg";
} 
?>

楽しみ!!!!!!!

于 2011-06-03T04:24:07.093 に答える
0

他の提案の代わりに、MySQLのISNULL()関数を使用して、デフォルトの画像名を返すことができます。たとえば、imagesディレクトリにdefault.png画像を作成し、クエリでこれを使用します。

SELECT
  name,
  IF(ISNULL(small_image),'default.png',small_image) AS "small_image",
  description
FROM
  images;

それが必ずしもより良い答えであると言っているのではなく、単なる代替案です。

于 2011-06-03T04:27:29.260 に答える
0

上記の最初のコード ブロックのコードを次のように変更してみてください。

$name         = htmlentities( $row['name'] );
$image_small  = ($row['image_small'] != '') ? "images/" . $row['image_small'] : '/path/to/default.png';

値があるかどうかをチェックし$row['image_small']、値がある場合はそれを使用し$image_small、そうでない場合$image_smallはデフォルトの小さな画像のパスに設定します。

于 2011-06-03T04:22:30.727 に答える
0

クライアント側の解決策は、img タグの「onerror」属性を使用することです。これは次のようになります。

 <img src='$image_small' with='$width' height='$height' onerror='this.src = "/images/default.jpg" ;' />
于 2011-06-03T06:03:04.797 に答える