2016-07-29 58 views
1

我真的不知道我在做什麼與這一個,花了至少1小時尋找具有相同問題的人,但找不到任何適合我/解決我的問題。MySQL數量(*)不返回具有相同輸入的行

$auth_user = new USER(); 

$user_id = $_SESSION['user_session']; 
$asd = $auth_user->runQuery("SELECT COUNT(*) FROM ticket_replies WHERE uid=:userid"); 
$asd->execute(array(':userid'=>$user_id)); 
$rows = $asd->fetchAll(); 
$numrows = count($rows); 
echo $numrows; 

甚至不知道這是否正確,但它確實在頁面上返回1。

$auth_user = new USER(); 

$user_id = $_SESSION['user_session']; 

$asd = $auth_user->runQuery("SELECT uid, count(*) FROM ticket_replies WHERE uid=:uname"); 
$asd->execute(array(':uname'=>$user_id)); 
$ticketsrow = $asd->fetchAll(); 
$count = count($ticketsrow); 
foreach($ticketsrow as $row9){ 
    echo $row9['uid']; 
} 

上述代碼返回的「5」是一個如果表中的值的值,但顯然我希望爲它在1,2 & 3有序的方式返回。

任何幫助非常感謝,謝謝。 table

+0

你算COUNT結果嗎?它應該只返回1行。 – Danieboy

+0

顯示一些樣品日期和您的預期結果。 – Blank

+0

@Danieboy在一天結束時的目標是統計所有行,編號。 6行,「6」在頁面上。 –

回答

2

移除UID從那裏..

只適用於GROUPBY UID,我不知道語法,但在簡單的SQL語句會像

SELECT *,count(*) AS count FROM `ticket_replies` group By `uid` order by `count` 

刪除這也

$numrows = count($rows); 

做到這一點

foreach($ticketsrow as $row9){ 
    echo $row9['uid']; 
    echo $row9['count']; 
} 

,你是好去...

+0

至今很好用,非常感謝。 –

1

讓你的第一個代碼塊解決問題,請執行下列操作

$auth_user = new USER(); 

$user_id = $_SESSION['user_session']; 
$asd = $auth_user->runQuery("SELECT COUNT(*) AS `count` FROM ticket_replies WHERE uid=:userid"); 
$asd->execute(array(':userid'=>$user_id)); 
$rows = $asd->fetchAll(); 

fetchAll功能retuns數組,所以當你使用count($rows)你會得到什麼數組的大小,而不是sql語句的結果。爲了獲得你需要做的SQL語句的結果,遵循

print_r($rows) 
echo $rows[0]['count']; // print the result of the sql 

要與你的第二個代碼塊解決這個問題做如下

$auth_user = new USER(); 

$user_id = $_SESSION['user_session']; 

$asd = $auth_user->runQuery("SELECT *, COUNT(*) AS `count` FROM ticket_replies GROUP BY `uid` ORDER BY `count`"); 
$asd->execute(); 
$ticketsrow = $asd->fetchAll(); 
print_r($ticketsrow); 

foreach($ticketsrow as $row){ 
    echo $row['uid']; 
    echo $row['count'] 
} 
+0

您的解決方案也適用於我,非常感謝。 –

0

從下面的查詢獲取計數

select count(*) as count from FROM ticket_replies WHERE uid=:uname 

修改代碼,這樣的事情

echo $ticketsrow[0]['count']; 

上述查詢將始終返回恰好一行,因爲您在where子句中傳遞userid。或者只是嘗試var_dump($ ticketsrow)以獲取線索如何訪問計數。

相關問題