2013-06-19 49 views
0

我有以下MySQL查詢;從MySQL查詢迴應單個結果

SELECT *, @rownum := @rownum + 1 from 
    (
    SELECT (display_name) 'Author', 
     IFNULL(ROUND(SUM(balance.meta_value),2),2) 'Balance' 
    FROM posts p 
    JOIN users u 
     ON p.post_author = u.ID 
    JOIN postmeta odd ON p.ID = odd.post_id AND odd.meta_key = 'odd' AND odd.meta_value >= 1.5 
    LEFT JOIN postmeta balance 
     ON p.ID = balance.post_id AND balance.meta_key = 'balance' 
    WHERE p.post_status = 'publish' and p.post_author = 'User1' 
    GROUP BY u.ID 
    ORDER BY Balance DESC 
    )x, (SELECT @rownum := 0) r 

它產生下表;

Users  Balance  @rownum := 0  @rownum := @rownum + 1 
User1  5.88    0    1 
User2  -23.41   0    2 

我怎樣才能回聲針對第一用戶的最後一列的值(其中,[@rownum:= @rownum + 1] = 1

由於

+0

也許取整排與mysql_fetch_array()和只取最後一個元素此數組中? – chao

+0

@chao - 你能給我一個代碼的例子嗎 – qebas

回答

1
$result = mysql_query("your's sql query"); 
$row = mysql_fetch_array($result); 
echo $row[2]; 

這是代碼爲您的具體問題。閱讀更多關於here。整個擴展已棄用,所以爲您的功課閱讀this並重寫我的代碼。

1

您需要使用mysqli_ *功能在PHP連接並執行查詢。一旦執行查詢,您將檢索第一行,然後回顯第三列。

像這樣的東西應該工作(更改MySQL PARAMS到有效的用戶/密碼的名稱爲您的主機):

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT *, @rownum := @rownum + 1 from 
    (
    SELECT (display_name) 'Author', 
     IFNULL(ROUND(SUM(balance.meta_value),2),2) 'Balance' 
    FROM posts p 
    JOIN users u 
     ON p.post_author = u.ID 
    JOIN postmeta odd ON p.ID = odd.post_id AND odd.meta_key = 'odd' AND odd.meta_value >= 1.5 
    LEFT JOIN postmeta balance 
     ON p.ID = balance.post_id AND balance.meta_key = 'balance' 
    WHERE p.post_status = 'publish' and p.post_author = 'User1' 
    GROUP BY u.ID 
    ORDER BY Balance DESC 
    )x, (SELECT @rownum := 0) r"; 

if ($result = $mysqli->query($query)) { 

    /* fetch object array */ 
    $row = $result->fetch_row(); // Fetch the first row 
    echo $row[2]; // Print the 3rd column 

    /* free result set */ 
    $result->close(); 
} 

/* close connection */ 
$mysqli->close(); 
?>