从另一个数据库获取数据

时间:2015-01-22 19:11:01

标签: php mysql

问题是:我有2个数据库

  • 登录:用户
  • 我的世界:mcmmo_players
  • Minecraft:mcmmo_stats

数据库登录用于用户登录网站。

数据库 Minecraft 用于Minecraft服务器以保存统计数据。

用户需要在登录数据库中 Minecraft用户名注册。

问题:我尝试连接这两个数据库首先我需要 id id 我可以获取数据超出 mcmmo_stats表。这么容易说

  

网站(用户名) - > Mcmmo_player(id) - > Mcmmo_stats(ID)

目前这是我的代码:

$getusername = $_SESSION['sess_username'];

$conn = mysqli_connect('localhost', 'root', '', 'minecraft');

$con = "select u.*,minecraft.mcmmo_stats from minecraft.mcmmo_users u join minecraft.mcmmo_skills s on u.player_id = s.player_id where u.user = '$getusername'";

$result = $conn->query($con);

$rowcount=mysqli_num_rows($result);

if ($rowcount > 0) {

while($result) {


    echo "<div class='col-sm-4 bericht'>";
    echo "<h3>".$result['id']."</h3>";
    echo "<h3>".$result['fishing']."</h3>";
    echo "</div>";
}

} ?&GT;

这不完全正常,因为我收到了错误

  

警告:mysqli_num_rows()要求参数1为mysqli_result,boolean给出   第7行的C:\ wamp \ www \ NieuweSite \ php \ rank.php

第7行是$rowcount=mysqli_num_rows($result);

3 个答案:

答案 0 :(得分:2)

我相信你的一个问题就在这里:

$con = "SELECT * from mcmmo_users WHERE user = '$getusername'";

你需要在 $ getusername 变量之前和之后使用那些撇号,以便sql知道你有一个字符串

答案 1 :(得分:0)

如果两个数据库都在同一台服务器上,您只需在表名之前添加数据库名称即可。

select * from database1.table
select * from database2.table

然后基于你似乎在问什么谎言,这可能会让你朝着正确的方向转向(不是100%肯定你在做什么)

select u.*,o.* from userdb.mcmmo_users u
join otherdb.othertable o on u.userid = o.userid
where u.user = 'your username'

我想我真的必须用实际的表名来编辑它

select u.*,o.player_stats from userdb.mcmmo_users u
join skillsdb.mcmmo_skills s on u.player_id = s.player_id
where u.user = 'your username'

答案 2 :(得分:0)

尝试使用此代码:

$rowcount=mysqli_num_rows($result);
if ($rowcount > 0) {