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でのクエリは、繰り返される1つだけでなく、実際には3つのレコードを出力します。私が間違ってやっている理由はありますか?他のレコードはどこにあり、なぜ配列にないのですか?mysql_fetch_arrayは使用する正しいコードですか?

次に、別のmysqlクエリでPHP配列を使用します。

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

それではこれは正しいでしょうか?

いつものように助けていただければ幸いです。

ありがとう、R

4

2 に答える 2

2

各行をフェッチする必要があります。つまり、次のようになります。

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

マニュアルを確認してください

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

ほぼ正しい。引用符を忘れないでください

于 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 に答える