2017-06-03 120 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個查詢。

相關問題