3

テーブルからユーザーの写真を取得するための mysql クエリがあり、ユーザーが写真を持っていないか、エントリがテーブルに存在しない場合に、何かをエコーアウトする必要がある場合に、どのタイプのステートメントを使用するかを誰か教えてください。そうしないと?

私はphpとmysqlが初めてなので、誰かが私に例を与えることができれば、これは本当に役に立ちます. ありがとうございました。

ユーザーの写真を取得する私のクエリは以下のとおりです。大きな画像を表示するためにログインした場合と、大きな画像へのリンクを持たないようにログアウトした場合があります。else ステートメントを試してみましたが、else でエコーされたテキストがユーザーの写真と一緒に表示されるだけであることに注意してください。

    <?php
        $get_photos_set = get_photos();
        while ($photos = mysql_fetch_array($get_photos_set)) {
            if (logged_in()) {
              echo "<li><a href=\"data/photos/{$photos['user_id']}/{$photos['file_name']}\" rel=\"prettyPhoto[pp_gal]\"><img src=\"data/photos/{$photos['user_id']}/thumb_{$photos['file_name']}\" alt=\"{$profile[2]}'s Photos\"  /></a></li>";
            } else {
              echo "<li><a href=\"login.php\"><img src=\"data/photos/{$photos['user_id']}/thumb_{$photos['file_name']}\" alt=\"{$profile[2]}'s Photos\"  /></a></li>";
            }
        }
    ?>

編集:

これを編集しても、結果が false の場合は何もエコーされません。

                          <?php
$get_photos_set = get_photos();
while ($photos = mysql_fetch_array($get_photos_set)) {
    if(!isset($get_photos_set) || $get_photos_set===false)
//Echo something else
echo "no results found";
else

//Do what you were normally doing
    if (logged_in()) {


echo
"<li><a href=\"data/photos/{$photos['user_id']}/{$photos['file_name']}\" rel=\"prettyPhoto[pp_gal]\"><img src=\"data/photos/{$photos['user_id']}/thumb_{$photos['file_name']}\" alt=\"{$profile[2]}'s Photos\"  /></a></li>";
    }


    if (!logged_in()) {
echo
"<li><a href=\"login.php\"><img src=\"data/photos/{$photos['user_id']}/thumb_{$photos['file_name']}\" alt=\"{$profile[2]}'s Photos\"  /></a></li>";


 }


}




?>
4

2 に答える 2

3

返された行数をチェックして、写真が見つかったかどうかを確認できます。

$get_photos_set = get_photos();
if (mysql_num_rows($get_photos_set) > 0) {
  // do loop
} else {
  echo 'x';
}
于 2012-12-19T01:30:00.793 に答える
2

これにはいくつかの方法でアプローチできますが、単純な方法では、ループにカウンターを実装する必要があります。その後、whileループが完了した後にカウンターをチェックし、「空の結果」に必要なものをすべて出力します。例えば

$results = 0;
$get_photos_set = get_photos();
while ($photos = mysql_fetch_array($get_photos_set)){
  // output
  $results++;
}
if ($results == 0){
  // no results output
}
于 2012-12-19T01:26:04.960 に答える