我有3个mysql表
user(u_id(p),name)
,team(t_id(p),u_id(f),t_name,t_money,days_money)
和history(t_id(f),day,d_money)
。 现在我必须使用php显示排行榜。
我试过了。
SELECT t_id FROM team;
得到了结果。
然后, 在for循环中
foreach($tid_all as $tid)
{
$que = $db_con->prepare("SELECT d_money, t_name FROM team, history WHERE t_id= '".$tid['t_id']."' && day='1'");
$que->execute();
while($info = $que->fetch(PDO::FETCH_NUM))
{
echo "<tr>";
echo "<td>".$info[0]."</td>";
echo "<td>".$info[1]."</td>";
echo "</tr>";
}
}
但它没有用。任何解决方案?
解决方案1: 我试过这个并且有效。
`SELECT d_money, t_name FROM team, history WHERE history.t_id=$tid['t_id'] AND team.t_id=history.t_id`
是否正确?
感谢大家的帮助。
问题:是否可以通过d_money订购结果表?我希望它按降序排列。
答案 0 :(得分:1)
MySQL Query中没有&&
。将<\ n> AND
运算符替换为您的查询。
答案 1 :(得分:1)
既然你想从两个表中获取数据,那么JOIN
这两个表而不是用循环来表示:
SELECT
h.d_money,
t.t_name
FROM team AS t
INNER JOIN history AS h ON t.t_id = h.t_id;
运行此单个查询一次,您将获得所需内容。您还可以在查询结尾处添加WHERE
子句。
答案 2 :(得分:1)
试试这个
SELECT d_money, t_name FROM team, history WHERE team.t_id= '".$tid['t_id']."' AND history.t_id= '".$tid['t_id']."' && day='1'
答案 3 :(得分:1)
将&&
替换为AND
。请尝试以下操作:
"SELECT d_money, t_name FROM team, history WHERE t_id= '".$tid['t_id']."' AND day='1' order by d_money DESC "
答案 4 :(得分:1)
可以替换
吗? WHERE t_id= '".$tid."' AND day='1'
而不是
WHERE t_id= '".$tid['t_id']."' && day='1'