PHP 输出数组到 SELECT mysql

标签 php mysql arrays select

需要查找数组,然后在数组值存在(或不存在)的情况下运行 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 都从我身上拿走......:-)

关于PHP 输出数组到 SELECT mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29220073/

相关文章:

php - 如何使用自定义错误处理程序捕获 php E_PARSE 错误?

php - PHP 引用数组的深拷贝

mysql - 根据其他行的计数选择行

javascript - 在添加对象之前如何检查对象是否已存在于数组中?

PHP 根据给定索引的匹配值合并数组

php - 如何让服务器从另一个目录加载php?

MySQL - 在 Amazon EC2 实例中将数据库表分区到不同的 EBS 卷中

mysql - 如何列出名称中包含子字符串的数据库列以及它们是否可为空

php - 检查多维数组中的条件

arrays - Go:空花括号对数组初始化内存分配的影响