1

ユーザーのお気に入りのリストを取得し、ページに画像を表示するクエリがあります。私ができるようにしたいのは、ファイルディレクトリからテンプレート画像を表示するために表示されるお気に入りがない場合です。

私はこのようにしようとしていますが、このエラーが発生します:

Warning: file_exists() expects parameter 1 to be string, resource given in /Applications/XAMPP/xamppfiles/htdocs/PTB1/includes/mod_favourites/favourites.php on line 28

Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in /Applications/XAMPP/xamppfiles/htdocs/PTB1/includes/mod_favourites/favourites.php on line 33

以下の私のコードは、誰かが私を助けて、私がやろうとしていることをどのように行うことができるかを教えてくれますか?

ありがとう。

<?php
$favorites_set_more = get_user_favorites_more();

if (!file_exists($favorites_set_more)) {
    $favorites_set_more = "data/photos/0/_default.jpg";
}


        while ($favorites2 = mysql_fetch_array($favorites_set_more)) {

echo "<a href=\"profile.php?id={$favorites2['favorite_id']}\"><img width=\"90px\" height=\"90px\" class=\"favorites_pic2\" src=\"data/photos/{$favorites2['favorite_id']}/_default.jpg\" /></a>";
?>


<? } ?>

これがfavorites_set_more関数です:

function get_user_favorites_more() {
            global $connection;
            global $_SESSION;
            $query = "SELECT f.favorite_id, p.display_name
                        FROM ptb_favorites f, ptb_profiles p
                        WHERE f.user_id =".$_SESSION['user_id']."
                        AND p.user_id = f.user_id
                        LIMIT 4,12";
                        $favorites_set_more = mysql_query($query, $connection);
            confirm_query($favorites_set_more);
            return $favorites_set_more;
        }  
4

1 に答える 1

1

エラー メッセージを読むと、file_exists()が期待されているstringが、 が提供されていることが示されていますresource。したがって、何get_user_favorites_more()が返されているかを確認する必要があります。ではないことは明らかstringです。

関数が false を返し、デフォルトの画像が表示されるようにget_user_favorites_more()、お気に入りが設定されていない場合は、関数が画像への存在しないリンクを返すことを確認してください。file_exists

関数を見るとget_user_favorites_more()、 の結果が返されますmysql_query($query, $connection)。これは であり、ではresourceありませんstring。したがって、することはできませんfile_exists($favorites_set_more)。次のように変更できます。

<?php
   //Get the favorites for the user
   $favorites_set_more = get_user_favorites_more();

   if (mysql_num_rows($favorites_set_more) == 0) {
      echo "<img width=\"90px\" height=\"90px\" class=\"favorites_pic2\" src=\"data/photos/0/_default.jpg\" />";
   }
   else {
      while ($favoriteImg = mysql_fetch_assoc($favorites_set_more)) {
         echo "<a href=\"profile.php?id=" . $favoriteImg['favorite_id'] . "\">";
         echo "<img width=\"90px\" height=\"90px\" class=\"favorites_pic2\" src=\"data/photos/" . $favoriteImg['favorite_id'] . "/_default.jpg\" />";
         echo "</a>";
      }
   }
?>
于 2013-01-23T09:35:07.297 に答える