while循环中的mysql_fetch_assoc问题 - foreach循环中查询格式错误

时间:2018-01-04 06:26:45

标签: php mysql loops foreach while-loop

我已经预测循环在$code我得到这样的字符串数字:1234 4211 4223 2252等,尽管使用explode或preg_split。

这是代码

foreach ($rowData as $row => $tr) {

    foreach ($tr as $td)

    $tdm = explode("/\s/", $td);
    $code = $tdm[0];

}


$sql_athl="SELECT * FROM `grobar_IDs` WHERE `id`='$code'";
$results=mysql_query($sql_athl);
while($athl_info = mysql_fetch_assoc($results)){

        echo $athl_info['NAT'];
}

如您所见,我想打印mysql记录,其中空格之间的每个数字都是一个ID。我想问题是$code,因为echo $sql_athl;只给我

  

SELECT * FROM grobar_IDs WHERE fiscode ='5451 4321 5142 5497   5253 6098 4322'

而不是

  

SELECT * FROM grobar_IDs WHERE fiscode ='5451'   SELECT * FROM grobar_IDs WHERE fiscode ='4321'

任何想法或解决方案的家伙? 我被卡住了......

1 个答案:

答案 0 :(得分:0)

首先将code变量设置为数组。

$code = [];
foreach ($rowData as $row => $tr) {
    foreach ($tr as $td) {
        $tdm = explode("/\s/", $td);
        $code[] = $tdm[0];
    }

}

使用implode在数组中添加逗号。

$code = implode(",", $code);

添加Mysql问题。

"SELECT * FROM grobar_IDs WHERE fiscode IN ('".$code."'");

如果有任何问题,请告诉我。