我在上一个问题上得到了很大的帮助,有人指示我去了解数据库表格和内容,从那时起我就一直在讨论大部分被困的事情!
不幸的是,我已经遇到了另一个我无法解决的问题。
我可以合并两个表并获得结果,但我似乎无法获得登录用户的结果。例如,我显示了金币的数量'用户在左上角,我有7个用户分配了100金币,我只希望在黄金所属的用户登录时看到它们,如果你找到了我?无论是否登录,这里的内容始终如一:http://imgur.com/kgqgnPc
这里是代码
$sql = 'SELECT `stats`.`id`, `stats`.`gold`, `users`.`id` FROM stats, users WHERE username = username';
$con=mysqli_connect("localhost","root","","game");
mysqli_select_db($con,'game');
$retval = mysqli_query($con,$sql);
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
echo "Gold :{$row['gold']} <br> ".
"--------------------------------<br>";
我90%确定与#34; select / from / where&#34;但是我做了大量的研究并且做不到:(
数据库结构:http://imgur.com/DR40iv8(对不起,我不知道如何在没有命令行的情况下获取它)
答案 0 :(得分:1)
我看到你在一张桌子里有金牌,在另一张桌子里有用户。黄金表中的黄金应该指向用户拥有黄金的东西。例如,owner_id指向用户id。然后你应该能够这样做:
$ sql =&#34; SELECT stats.id,stats.gold,users.id,users.username FROM stats,users WHERE users.username =&#39; $ username&#39; AND stats.owner_id = users.id&#34 ;;
这告诉用户使用$ username中指定的用户名查找,并且owner_id的gold与匹配该用户名的用户ID相同。
希望这有帮助
答案 1 :(得分:0)
尝试:
SELECT `stats`.`id`, `stats`.`gold`, `users`.`id` FROM stats, users WHERE stats.username = users.username
由于username
对两个表都是通用的(我假设),因此明确说明来自哪个表username
非常重要。
编辑添加:
您仍然需要从连接表的结果中指定所需的用户名。
$sql = 'SELECT `stats`.`id`, `stats`.`gold`, `users`.`id` FROM stats, users WHERE `stats`.username = `users`.username AND `users`.`'.$yourUserVariable.'`;