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 回答