使用LIKE和逻辑and左键连接PHP/SQL
我有下面的Mysql查询,我试图运行一个左连接来定义一个带有图像表的pages表使用LIKE和逻辑and左键连接PHP/SQL,php,mysql,Php,Mysql,我有下面的Mysql查询,我试图运行一个左连接来定义一个带有图像表的pages表 $query = mysql_query("SELECT * FROM pages WHERE `fname` LIKE '%$fname%' AND `lname` LIKE '%$lname%' AND `city` LIKE '%$citysearch%' AND `state` LIKE '%$statesearch%' AND `activities` LIKE '
$query = mysql_query("SELECT * FROM pages
WHERE `fname` LIKE '%$fname%' AND `lname` LIKE '%$lname%' AND `city` LIKE '%$citysearch%' AND `state` LIKE '%$statesearch%' AND `activities` LIKE '%$locationsearch%' AND `startyr` LIKE '%$startyearsearch%' AND `endyr` LIKE '%$endyearsearch%'
LEFT JOIN `images.pgname` WHERE `pages.pgname` = 'images.pgname' LIMIT $start, $perpage
");
我得到“警告:mysql\u fetch\u assoc()期望参数1是资源,第72行给出布尔值”
我要做的是将pages表与images表连接起来。 pages表具有以下字段: fname、lname、城市、州、活动、startyr、endyr、pgname “图像”表具有以下字段: pgname、id、imageUrl、用户名 我要做的是返回pages.pgname等于images.pgname的所有图像,并使用imageUrl返回图像的URL
欢迎任何帮助 看起来您正在尝试加入“images.pgname”列?只能联接完整的表。此外,连接需要位于WHERE子句之前 现在,让我们解释一下这个过程:如果需要从多个表中选择值,首先列出所有要选择的值。在这种情况下,即a)来自页面(
pages.*
)的所有列和b)来自图像(images.imageUrl
)的imageUrl:
然后,与往常一样,指定要从中选择的表:
FROM pages
然后你加入。左连接意味着数据库将尝试在其他表(图像)中查找相应的行。这一行实际上并不一定存在。但是,您可以通过指定定义连接的表和条件来进行连接:
LEFT JOIN images ON pages.pgname = images.pgname
其余的保持不变:
WHERE pages.fname LIKE '%$fname%' AND pages.lname LIKE '%$lname%' AND pages.city LIKE '%$citysearch%' AND pages.state LIKE '%$statesearch%' AND pages.activities LIKE '%$locationsearch%' AND pages.startyr LIKE '%$startyearsearch%' AND pages.endyr LIKE '%$endyearsearch%'
LIMIT $start, $perpage
但是,如果每页有多个图像,则需要以另一种方式连接:
SELECT pages.*, images.imageUrl
FROM images
JOIN pages ON pages.pgname = images.pgname
WHERE ...
请不要使用mysql的函数,因为它们在。如果你能详细说明一下你想要得到的结果,你可能会得到更多有用的答案。@Niko,我现在刚刚编辑了这个问题。还建议使用mysqli或pdo。我试图做的是将页面表与图像表连接起来。pages表有以下字段:fname、lname、city、state、activities、startyr、endyr、pgname,images表有以下字段:pgname、id、imageUrl、username我要做的是返回pages.pgname等于images.pgname的所有图像,并用imageUrl返回图像的URL。@ThelsonRichardson我已经更新了我的答案,请告诉我这是否正确解决了您的问题。我仍然无法解决我的问题。
SELECT pages.*, images.imageUrl
FROM images
JOIN pages ON pages.pgname = images.pgname
WHERE ...