php - 使用 PHP 和 mySQL 只打印一个查询结果?

标签 php mysql logic

我正在使用 mySQL 和 PHP,我遇到了一个需要思考一整天的查询,我不确定我的困难是否在于不知道为此可能需要的一些高级命令,可以吗?有帮助吗?

事情是这样的:我正在使用一个旧数据库,我不想更改其中的表,所以我必须使用两个表:

  • album:该表只有两个字段,id_album和album_name;
  • 照片:此表保存照片的路径,并通过字段 id_album 链接到相册表;

我想建立一个页面,列出所有相册,每个相册都有一个缩略图,这是我从“照片”表中获取的,在这种情况下,我只需要为每个相册列出一张照片,我不知道如何为此编写代码,这就是我到目前为止所得到的:

  <?php

  $comando = "SELECT * FROM album";

    $consulta = mysql_query($comando, $database)

        or die('Error:<br/>'.$comando);

    while($dados = mysql_fetch_array($consulta)) {


        $comando1 = "SELECT * FROM photos WHERE album = '".$dados['id_album']."'";
        $consulta1 = mysql_query($comando1, $database)
        or die('Error'.$comando1);

        while($dados1= mysql_fetch_array($consulta1)){          
          print '<li><a href="photos.php?Cod='.$dados['id_album'].'"><img src="'.$dados1['foto'].'"/></a><br/><a href="photos.php?Cod='.$dados['id_album'].'"> ' .$dados['album_name']. '</a></li>';

    }}

    ?>

它工作正常,但列出了所有相册中的所有照片。有没有办法让它为每个相册只打印一张照片?

提前非常感谢您!

最佳答案

$comando1 = "SELECT * FROM photos WHERE album = '".$dados['id_album']."' LIMIT 1";

您应该加入查询。使用类似的东西

$comando = "
   SELECT album.id_album, photos.* FROM `album` 
   LEFT JOIN `photos` on photos.album = album.id_album
   GROUP BY album.id_album";

关于php - 使用 PHP 和 mySQL 只打印一个查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26167864/

相关文章:

java - 在我的 for 循环中找不到逻辑错误

php - 在 Active Record 样式 ORM 中实现预加载的干净方法?

php - PHP问题:mysqli_error()恰好需要1个参数,给定0

mysql - `column` 是一个有效的 mysql 列名吗?

mysql - 带有嵌套变量的奇怪 bash 行为

c++ - 尝试从类打印私有(private)静态整数时出错。 C++

php - Zend Framework - 使用路由和正则表达式设置用户友好的 URL

php - 以 HTML 或 JSON 格式加载 ajax 数据?

PHP MySQL 下拉列表搜索

java - 快速排序算法的动画