-1

我正在尝试运行查询以确定 A 列是否为真。如果为真,则获取不同列 B 的内容(可能是由“,”分隔的数组)并使用这些内容来查询不同的表。我的问题是,B 列可能是一个数字,也可能是 10 个数字,都用“,”分隔,我需要在第二个表中查询前一个查询的每个数字的列。如果有人可以提供帮助,那就太好了。

编辑:我尝试使用数组分解功能,但不知道如何查询下一个表以包含这些值。

我想象它是这样的

query = select * from table where location = arrayValue[1] or location = arrayValue[2] 
4

2 回答 2

0

Telmo Marques 在这里的改编,但有所改进:

<?php
//Let's say $bcolumn is a string with the values of B column, separated by colons
$bcolumnArray = explode(",", $bcolumn);
array_walk($bcolumnArray, 'htmlentities');

//Build SQL query
$SQL = 'SELECT * FROM table';
if(count($bcolumnArray)){
    $SQL.= ' WHERE IN ("'.implode('", "', $vbcolumnArray).'")';
}

//Query your second table here
$Qry = mysql_query($sql);

// Results here :
while($Res = mysql_fetch_assoc($Qry)){
    print_r($Res);
}
?>

我建议 PDO 也...看看:PDO

于 2012-04-18T16:50:03.647 回答
0

使用 PHP 的explode()函数将字符串转换为数组。

<?php
//Let's say $bcolumn is a string with the values of B column, separated by colons
$bcolumnArray = explode(",", $bcolumn);

//Build SQL query
$sql = "SELECT * FROM table WHERE ";
for($i=0; $i < count($bcolumnArray); $i++)
{
   $sql .= "location = " . $value;
   if($i != count($bcolumnArray)-1)
   {
      $sql .= " or ";
   }
}

//Query your second table here
mysql_query($sql);
?>

文档: http: //php.net/manual/en/function.explode.php

于 2012-04-18T16:29:05.887 回答