Php 在另一个查询中使用查询中的值
我有一个问题Php 在另一个查询中使用查询中的值,php,mysql,Php,Mysql,我有一个问题 $result = mysql_query("SELECT * FROM comprofiler WHERE cb_playstationgames LIKE '%FIFA%' ORDER BY id ASC"); 在该查询中,有一个用户id,我需要在另一个表上执行查询 $gebruikerid = mysql_query("SELECT * FROM users where id LIKE '".$result['user_id']."'"); 现在我想在while循环中使
$result = mysql_query("SELECT * FROM comprofiler WHERE cb_playstationgames LIKE '%FIFA%' ORDER BY id ASC");
在该查询中,有一个用户id,我需要在另一个表上执行查询
$gebruikerid = mysql_query("SELECT * FROM users where id LIKE '".$result['user_id']."'");
现在我想在while循环中使用该值
echo "<table><tr><th width=\"300\" align=\"left\" >Avatar</th><th width=\"300\" align=\"left\">Naam</th><th width=\"200\" align=\"left\">PSN Naam</th></tr>";
while($row2 = mysql_fetch_array($result))
{
echo "<tr><td><img height=\"50\" width=\"50\" src=\"/images/comprofiler/" . $row2['avatar'] . "\"></td><td>" . $gebruikernaam . "</td><td>" . $row2['cb_psnnaam'] . "</td></tr>";
}
echo "</table>";
echo“avatarnaampsnaam”;
while($row2=mysql\u fetch\u数组($result))
{
回声“$gebruikernaam.”“$row2['cb_psnnaam'”;
}
回声“;
我无法让查询根据第一个表的id从另一个表读取值。有人能帮我吗?在你的情况下,最好的解决方案是使用JOIN
$result = mysql_query("SELECT comprofiler.*, users.* FROM comprofiler INNER JOIN users ON users.id = comprofiler.user_id WHERE cb_playstationgames LIKE '%FIFA%' ORDER BY comprofiler.id ASC");
如果两个表中的列名相同,并且两者都需要,则可能必须手动指定要选择的列(在选择之后)
$result = mysql_query("SELECT comprofiler.id as id_comprofiler, users.id as id_user, users.avatar ... " );
要回答您的问题,为什么它不起作用:
Second query does not use mysql_fetch_array.
$gebruikerid = mysql_fetch_array($gebruikerid);
如果您使用或使用MySQLi准备的语句,则会更加安全&更干净,如:
$db = new \PDO(SEE PDO CUNSTRUCT)
$query1 = $db->prepare('
SELECT *
FROM comprofiler
WHERE cb_playstationgames LIKE :fifa
ORDER BY id ASC
');
$query2 = $db->prepare('
SELECT * FROM users where id LIKE :id
');
$query1->bindValue(':fifa', '%FIFA%', PDO::PARAM_STR);
$query1->execute();
while ($row = $query1->fetch(PDO::FETCH_ASSOC)) {
$query2->bindParam(':id', $row['user_id'], PDO::PARAM_INT);
$query2->execute();
//Holds associative array of second query
$row2 = $query->fetch(PDO::FETCH_ASSOC);
//$row1 holds associative array of first query
}
什么不起作用?或者“不起作用”是什么意思?或者谁是“不工作”?你期望发生什么?您应该使用准备好的语句来访问MySQLi或PDO,mysql_uu函数已被弃用。您没有获取第二个查询
gebruikeraam