在 phpMyAdmin 界面中,我运行以下 SQL 查询:
SELECT id FROM table WHERE family = '1' AND type = 'B1'
并收到以下结果:
“1”、“18546269”、“51534064”是正确的。
然后我用 PHP 编写了以下代码:
$query = "SELECT id FROM table WHERE family = '1' AND type = 'B1'";
$result = mysql_query($query);
$array = mysql_fetch_array($result);
echo '(', implode(',',$array) ,')';
但收到以下结果: (1,1) 这是我没想到的。
我以为会显示(1,18546269,51534064)。 然后我编写了以下代码来验证应该显示的内容:
print_r ($array);
并且非常惊讶这些值为:
Array ( [0] => 1 [id] => 1 ).
最后我写道:
while($array = mysql_fetch_array($result)) {
echo $array['id'],',';
}
正如预期的那样,收到了这个:
1,18546269,51534064,
我无法使用它,因为我需要一个完全相同的字符串:(1,18546269,51534064)。 事实上,我“只是”需要一个变量,它为我提供与在 phpMyAdmin 中运行的 SQL 查询相同的值。 我真的很困惑,如果你们中有人能帮助我,那就太好了。 使用 mysqli 的解决方案也将受到赞赏。 :-)
最佳答案
$query = "SELECT id FROM table WHERE family = '1' AND type = 'B1'";
$result = mysqli_query($link, $query);
$ids = '';
while($row = mysqli_fetch_array($result)) $ids .= $row['id'].',';
// Filter the text a bit
$ids = rtrim($string, ',');
$ids = '('.$ids.')';
echo $ids;
您基本上启动一个变量,将所有 id 放入其中,删除最后一个逗号,附加括号,就是这样。
关于php - mysql_fetch_array 不会呈现 SQL 查询的期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874329/