我有一个脚本,我正在努力检索基于标题的第一个字母的结果。我有链接A-Z,您可以点击它,它会显示以该字母开头的所有结果。我的问题是我想显示table1的数据,并显示该结果的图像,如果不存在,如果不是,那么它只会显示table1的结果数据。如何显示只有一个结果
我的脚本似乎工作正常,但如果表2中存在多于一个图像与表1中的link_id匹配,那么它将多次显示结果。 我试图找出一种方法来只从table2拉1图像,即使更多的存在等于table1中的link_id。我在表2中创建了一个名为default_image的列,并且每个具有多个图像的link_id都将其中一个图像设置为1,并将所有其他图像设置为0.
如何显示只有默认图像的结果或根本没有图像“意味着如果table2中没有可用的图像链接到table1中的link_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“图像”数据,如果有任何图像存在,如果不只是显示table1数据,并确保我只显示默认图像,如果存在多个图像。
任何人有什么想法做什么? 谢谢。编辑: 使用GROUP BY修复。谢谢谁曾建议并删除他们的评论。我完全忘了团队。
您的脚本对SQL注入攻击开放。如果没有首先验证它是否安全使用,请勿使用$ _GET或$ _POST中的数据。使用mysql_real_escape_string或了解准备好的语句。 – GordonM 2012-03-27 07:01:11
谢谢他,但我知道这一点。我只是想让它在本地主机上运行。如果我将它用于生产,我将确保对所有内容进行验证。 – chris 2012-03-27 07:47:19