2010-11-23 5 views
0

MySQLのクエリとPHPのコードは次のとおりです。MySQLのアレイとデータ

$sql = mysql_query("SELECT a2.id, a2.name FROM members a2 JOIN room f ON f.myid = a2.id 
WHERE f.user = 1 AND a2.status ='7' UNION SELECT a2.id, a2.name FROM members a2 
JOIN room f ON f.user = a2.id WHERE f.myid = 1 AND a2.status ='7' GROUP BY id") 
or die(mysql_error()); 

while ($r = mysql_fetch_array($sql)) 
{ 
$temp[] = '"'.$r[0].'"'; 
} 
$thelist = implode(",",$temp); 

使用して、新しいギャラリーがメンバーのリストを取得する次のクエリ前のクエリの配列。

$ft = mysql_query("SELECT id, pic1 FROM foto WHERE id IN ($thelist) AND 
pic1!='' ORDER BY date DESC LIMIT 10"); 

while ($f = mysql_fetch_array($ft)) 
{ 
echo $f['id']." - ".$f['pic1']."<br/>"; 
} 

これらのクエリは正常に機能しますが、2番目のクエリにリストされているすべてのユーザーの名前を取得する必要があります。このデータは列名の最初のクエリにあります。 '$ f [' id ']の横にどうすればいいのですか? " - " $ f [' pic1 ']'?

答えて

0

私はちょうど同じ時間にギャラリーを引っ張ったり、名前に参加してもらうために2番目のクエリを変更するには、最初のクエリを変更するかもしれませんが、あなたが同じ構造を維持し、いくつかのことを変更することができます:

で最初のクエリの後のループ$temp[]を構築し、また、ユーザー名にユーザーIDのルックアップテーブルを作成:(!それらが同じであると仮定した場合)

$usernames[$r[0]] = $r[1]; 

その後、あなたの出力ループで、IDを使用する2番目のクエリから保存したユーザー名の値を呼び出します。

echo $f['id'] . " - " . $f['pic1'] . " - " . $usernames[$f['id']] . "<br/>";