使用mysql php基于另一个查询运行查询

使用mysql php基于另一个查询运行查询,php,mysql,subquery,implode,Php,Mysql,Subquery,Implode,下面的代码搜索我的mysql数据库,返回的邮政编码为IG6、RM11、RM8、RM4、RM2、RM6、RM7、RM1、RM5以及使用存储过程的距离。(一切正常) 问题:有了这些结果,我想在同一数据库中搜索另一个表,该表可能包含带有这些邮政编码的工作信息(可能使用类似于的) 让它工作的最好方法是什么?我试过很多例子(内爆,阵列,等等) 一个到数据库的连接正确吗?如何查询变量,因为它返回了两列,邮政编码和距离。我应该分割成一个数组(如何分割?) 最终产品:HGV驱动器RM5、清洁剂RM5、教师RM5

下面的代码搜索我的mysql数据库,返回的邮政编码为IG6、RM11、RM8、RM4、RM2、RM6、RM7、RM1、RM5以及使用存储过程的距离。(一切正常)

问题:有了这些结果,我想在同一数据库中搜索另一个表,该表可能包含带有这些邮政编码的工作信息(可能使用类似于的

让它工作的最好方法是什么?我试过很多例子(
内爆
阵列
,等等) 一个到数据库的连接正确吗?如何查询变量,因为它返回了两列,邮政编码和距离。我应该分割成一个数组(如何分割?)

最终产品:HGV驱动器RM5、清洁剂RM5、教师RM5

从jobinfo中选择标题,其中位置在其他查询的结果中


首先将输出准备到子句中:

在第一个while循环中:

while($row = mysql_fetch_array($result))
 {
    $array[] = $row['outcode'] ;
 } 
然后为IN子句准备数组:

foreach ($array as $a) {$clause.= "'$a',";}
$clause=substr($clause,0,-1)
最后,将该子句用于IN语句:

$resultb = mysql_query("SELECT title FROM jobinfo WHERE location IN ($clause) "
====EDIT===LIKE语句

例如。。您需要同时使用多个like语句

将准备条款代码更改为:

foreach ($array as $a) {$clause.= " location LIKE '%$a%' OR";}
$clause=substr($clause,0,-3)
sql变成:

$resultb = mysql_query("SELECT title FROM jobinfo WHERE $clause ");

当然,您还需要添加一些错误检查。。想一想可能的注射。

我想你正在尝试做类似于这个答案的事情


此外,请使用参数化查询

这是可行的,但它只查找精确的匹配项,例如“RM5”,而不是“Driver RM5”字段中的匹配项。我如何扩展你的优秀代码来添加这个…我确信%的位置在某个地方是需要的?你能在准备好的语句中阐明如何做吗?当语句需要像本例那样是动态的时,我总是对准备好的语句有问题。首先,您需要切换数据库对象,以便使用PDO而不是mysql函数(mysql函数是去擦洗的)。这是PDO文档,然后按照我发布的第一个答案到第二个链接的示例进行操作。使用命名的参数,然后将变量设置为参数。哦,我想我明白了你的意思。只需首先将SQL语句构建为字符串,使用:var符号表示法,而不是固定在变量中,然后使用数组语法将变量绑定到命名符号,如示例I postedah。。这就解释了。谢谢!下次我会试试的!
$resultb = mysql_query("SELECT title FROM jobinfo WHERE $clause ");