台灣最大程式設計社群網站
線上人數
956
 
會員總數:239905
討論主題:186053
歡迎您免費加入會員
討論區列表 >> PHP >> PDO如何取得select的筆數
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
PDO如何取得select的筆數
價值 : 100 QP  點閱數:349 回應數:5

樓主

studycode
門外漢
0 29
733 61
發送站內信


上面這段會顯示總筆數,但不會顯示查詢第一筆結果,
但若順序調換如下一段,反而顯示第一筆結果,不會顯示總筆數,

請問我該怎麼讓兩個都顯示呢?

搜尋相關Tags的文章: [ php ] , [ pdo ] , [ fetch ] ,
本篇文章發表於2017-01-05 22:59
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

studycode
檢舉此回應
網路上有人說總筆數可以select count(*)

但我總不能都這樣query兩次啊~~~
有時候select 的 table 很大,且 where條件很多,
這樣做會很麻煩且不知會不會較耗資源?!


本篇文章回覆於2017-01-05 23:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

studycode
檢舉此回應
公司要從php5.2直接升級到php7, mssql系列函數已不能用,因程式太多,真的是很頭大!!所以我想在一支本來就有在共用的連線程式加上類似下列這些自定函數



原本程式大都是總筆數放在前面,後面才是查詢結果,所以舊程式都套用上面自己改寫的函數之後,都只會抓到總筆數,
若先顯示查詢結果,最後總筆數再來count($row)也是可以,但我就得全部程式都去改順序了,
所以不曉得有沒有什麼辦法讓我可以只改上面那支共用的連線程式就好???其他都不用動><


本篇文章回覆於2017-01-05 23:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

可樂快跑
檢舉此回應
乖乖的封裝成合理的orm會比你封裝成原同名函式來的好。
如果是為了屈就於舊系統而用這種寫法,一個弄不好可能反而降低了效能。

好吧!假設你真的是非這樣用不可。
那你就參考看看PDOStatement提供的函式內容吧!

PDOStatement
本篇文章回覆於2017-01-06 01:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

迷路
捐贈 VP 給 迷路 檢舉此回應

echo count($res->fetchAll());//顯示select總筆數
改成
echo count($row);
試試看
本篇文章回覆於2017-01-06 10:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

studycode
檢舉此回應
to 「迷路」,我在2樓有寫到依目前我想要的方式,用count($row) 可能不太適合

to 「可樂快跑」,公司程式很多,因以前是外包的,現在都由公司自己接手,雖然我有帶一個新人,但目前主要還是我在處理,
所以才會想到這種只想改一支共用程式的方式,不然老闆可能等不了我花幾個月時間處理升級

------
後來我在共用程式把已不支援的mssql函數,自己改寫為sqlsrv的函數,目前測了幾頁都沒問題,
當務之急是先讓php7能正常run程式,後續等網頁要進行改版時,我再開始逐步直接採用pdo、sqlsrv或orm。

謝謝兩位!!

本篇文章回覆於2017-01-07 17:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.