Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何仅显示一个结果_Php_Mysql - Fatal编程技术网

Php 如何仅显示一个结果

Php 如何仅显示一个结果,php,mysql,Php,Mysql,我有一个脚本,可以根据标题的第一个字母检索结果。我有链接A-Z,你可以点击,它会显示所有的结果,从该字母开始。我的问题是,我试图显示来自表1的数据,并显示该结果的图像。如果表2中存在图像,则它将仅显示来自表1的结果数据 我的脚本似乎工作正常,但如果表2中存在多个与表1中的link_id匹配的图像,那么它将多次显示结果。 我试图找出一种方法,从表2中只提取1个图像,即使存在更多与表1中的link_id相等的图像。我在表2中创建了一个名为default_image的列,每个具有多个图像的link_i

我有一个脚本,可以根据标题的第一个字母检索结果。我有链接A-Z,你可以点击,它会显示所有的结果,从该字母开始。我的问题是,我试图显示来自表1的数据,并显示该结果的图像。如果表2中存在图像,则它将仅显示来自表1的结果数据

我的脚本似乎工作正常,但如果表2中存在多个与表1中的link_id匹配的图像,那么它将多次显示结果。 我试图找出一种方法,从表2中只提取1个图像,即使存在更多与表1中的link_id相等的图像。我在表2中创建了一个名为default_image的列,每个具有多个图像的link_id都将其中一个图像设置为默认值1,而所有其他图像都设置为0

如何显示只有默认图像或根本没有图像的结果“意味着如果表2中没有图像链接到表1中的链接id,那么表1中的结果文本仍将显示”

这就是我正在做的

$letter = $_GET['letter'];
$sql = "
select 
    s.link_id, 
    s.title, 
    i.media_id, 
    i.link_id, 
    i.media_link,
    i.title 
from table1 as s 
LEFT JOIN images as i on (i.link_id = s.link_id) 
where s.title like '$letter%' 
and s.def = i.title";

$result = mysql_query($sql) or die($CONF['debug']?("ERROR: mysql query failed: ".mysql_error()):"ERROR: Please try later");
while($row = mysql_fetch_array($result)){
    $letter = $_GET['letter'];
    //echoing all data here
}
只是想尽量弄清楚。我基本上是试图查询数据库,如果存在任何图像,则显示table1数据和table2“images”数据,如果不只是显示table1数据,并确保如果存在多个图像,则仅显示默认图像

有人知道该怎么做吗? 谢谢

编辑: 固定使用分组方式。感谢您曾经建议并删除了他们的评论。我完全忘记了分组依据。

使用此查询:

select 
s.link_id, 
s.title, 
i.media_id, 
i.link_id, 
i.media_link,
i.title 
from table1 as s 
LEFT JOIN images as i on (i.link_id = s.link_id) 
where s.title like '$letter%' 
and s.def = i.title
order by i.default_image DESC
limit 1

您只需在默认情况下对图像字段进行降序排序(因此非空行将位于顶部),并将查询限制为1,这样您就可以只获取第一行(如果有多行)。

您的脚本会受到SQL注入攻击。在未事先确认使用安全之前,不要使用来自$\u GET或$\u POST的数据。使用mysql\u real\u escape\u字符串或了解准备好的语句。感谢他提醒我,但我知道这一点。我只是想让它在本地主机上工作。如果我将其用于生产,我将确保验证所有内容。