私は最初に目標を明確に説明しようとします:MySQLクエリWHEREクエリはクエリ自体ですか?
まず、データベースの1つのテーブルにユーザー名のリストを照会します。
第2に、これらのユーザー名を取得し、データベース内の別のテーブルをクエリし、これらのユーザー名がユーザー名フィールドに表示されている行のみを返したいとします。
最後に、この出力を(今のJSON配列形式で)取り出し、要求元のクライアントに返します。
私のクエリは今、この権利のようになります。
$query = mysql_query("SELECT * FROM tagusers WHERE username =
(SELECT userA FROM friendtable WHERE userB = '$username')");
時にWHERE文の利回り1つの結果これは動作します。だから、返されたuserAが1つしか得られなければ、うまく動作します。しかし、私が複数取得した場合、私はエラーの束を取得します。ここで
は、全体のコードです:
if (isset($_POST['username'])) {
$username = $_POST['username'];
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("TagDB");
$query = mysql_query("SELECT * FROM tagusers WHERE username =
(SELECT userA FROM friendtable WHERE userB = '$username')");
}
while ($e = mysql_fetch_assoc($query)) {
$output[] = $e;
}
$output = json_encode($output);
print $output;
私は、クエリの行に次のエラーを取得する:
*警告:するmysql_query()[function.mysql-クエリ]:保存することができません。結果はC:\ wamp \ www \ tag \ appgetfriendinfo.phpの21行目に設定されます*
私が本当に知る必要があるのは、どのように私はそのクエリをMySQLで書くのですか?
あなたはWHERE名みましたIN(...) –