0

简单的问题(我认为)。

我有以下 PHP / MySQL 脚本:

$risksql="select risk from jobsrisks where job='$job'";
$executerisks=mysql_query($risksql);
$test=mysql_fetch_array($executerisks);
$riskrows=mysql_num_rows($executerisks);

我想用代码打印数组的值(用于测试):

print_r($test);

这会产生以下输出:

php 中的查询实际上输出了 3 条记录,而不仅仅是重复的一条。有什么想法我做错了吗?其他记录在哪里,为什么不在数组中?mysql_fetch_array 是要使用的正确代码吗?

然后我想在另一个 mysql 查询中使用 PHP 数组:

$ids = join(',',$test);   
$sql = "SELECT * FROM table WHERE risk IN ($ids)"; 

那么这会是正确的吗?

一如既往地感谢您的帮助。

谢谢,R

4

2 回答 2

2

you need to fetch each row, ie:

while ($row = mysql_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

check the manual

$ids = join(',',$test);   
$sql = "SELECT * FROM table WHERE risk IN ('$ids')"; 

almost right. don't forget about quotes

于 2012-08-14T14:03:46.390 回答
0

为什么不加入选择?

$sql = "SELECT * FROM table WHERE risk IN (SELECT risk FROM jobsrisks WHERE job='$job')"; 
于 2012-08-14T14:04:31.363 回答