-1

クエリを実行して、列Aが真であるかどうかを判断しようとしています。trueの場合、別の列Bの内容(「、」で区切られた配列の可能性があります)を取得し、それらの内容を使用して別のテーブルにクエリを実行します。私の問題は、列Bが1つの数値であるか、すべて「、」で区切られた10の数値である可能性があり、前のクエリの各数値の列について2番目のテーブルをクエリする必要があることです。誰かが助けることができればそれは素晴らしいことです。

編集:配列の展開関数を使用しようとしましたが、これらの値を含めるために次のテーブルをクエリする方法がわかりません。

私はそれが次のようなものだと思います

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

2 に答える 2

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 に答える
0

ここでのTelmoMarquesの適応ですが、改善されました:

<?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 に答える