2017-06-03 122 views
0

我想获取所有用户数据,但我得到只有一个用户的详细信息,请帮我解决如何从数据库中获取所有用户数据?

$conn = mysqli_connect("localhost", "root", "", "bitmining"); 
$sql6="SELECT username FROM users";   
if($result = mysqli_query($conn, $sql6)){  
    while ($row=mysqli_fetch_array($result)){    
    //Hashrate Data Fetch 
    $investedusername = $row['username']; 

    $sql3="SELECT sum(hashrate_amount) as total FROM buyhashrate WHERE invested_username='$investedusername'"; 
    $result = mysqli_query($conn, $sql3);   
    $row = mysqli_fetch_assoc($result); 
    //Total Value of Hashrate 
    echo $row['total'] . " GH/s";    
    echo "<br />";  
} 
    $result->close(); 
} 
+2

使用'join',不需要2个查询。 – chris85

回答

0

你再使用$结果领域,改变你的第二个参考类似...

$result1 = mysqli_query($conn, $sql3);   
    $row = mysqli_fetch_assoc($result1); 

这将阻止它正在重置在

while ($row=mysqli_fetch_array($result)){ 
0

您使用主循环的值可以使用$结果变量都mysqli_query $ result = mysqli_query($ conn,$ sql3);

0

虽然其他答案是正确的关于你的错误,我想给你一个更好的解决方案。

尝试使用加入这样的:

$conn = mysqli_connect("localhost", "root", "", "bitmining"); 
$sql="SELECT SUM(hashrate_amount) AS total FROM users AS t1 LEFT JOIN buyhashrate AS t2 ON (t1.username=t2.invested_username) GROUP BY t1.username";   
if($result = mysqli_query($conn, $sql)){  
    while ($row=mysqli_fetch_array($result)){    
     //Total Value of Hashrate 
     echo $row['total'] . " GH/s";    
     echo "<br />";  
    } 
    $result->close(); 
} 

这样你就从数据库只是一个查询。但是使用你的方法你有n + 1个查询,其中n是用户数量。所以对于一百个用户来说,有101个查询。

相关问题