PHP输出数组到SELECT mysql中


PHP output array into SELECT mysql

需要查找数组,然后在存在(或不存在)数组值的地方运行MYSQL SELECT。

$symbol = "abc";
$sql = "SELECT * FROM around";
$results = $conn->query($sql);
foreach($results as $row) {
$stop = preg_replace("/[0-9]/", "", $row['tip']);
if ($stop ==  $symbol) 
{$sword = $row['tip'];
 }}

因此,在有多个输出的情况下,我们需要$sword作为数组。在我们有了这个数组之后,我们需要运行一个mysql查询,它只显示那些有$sword数组的查询。

$query = "
 SELECT * FROM ms WHERE `big` = '$sword'";
 $result = mysql_query( $query );

所以我们可以做一些类似的事情:

while ( $row = mysql_fetch_assoc( $result ) ) {
  echo '"time": "' . $row['time'] . '",'; }

以下是将$sword转换为数组并在第二个查询中使用的代码:

$symbol = array("abc", "def", "ghi");
$sword = array();
$sql = "SELECT * FROM around";
$results = $conn->query($sql);
foreach($results as $row) {
    $stop = preg_replace("/[0-9]/", "", $row['tip']);
    if (in_array($stop, $symbol)) {
        $sword[] = $row['tip'];
    }
}
if ($sword) {
    $in = '';
    $sep = '';
    foreach ($sword as $s) {
        $in .= "$sep '$s'";
        $sep = ',';
    }
    /* $in now contains a string like "'123abc123', '12abc12', '1abc1'" */
    $query = "
    SELECT * FROM ms WHERE `big` IN ($in)";
    $result = mysql_query( $query );
    while ( $row = mysql_fetch_assoc( $result ) ) {
        echo '"time": "' . $row['time'] . '",'; 
    }
}

现在我要去洗手,把所有的mysql_query都去掉…:-)