我正在使用 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/