台灣最大程式設計社群網站
線上人數
1990
 
會員總數:246276
討論主題:189811
歡迎您免費加入會員
討論區列表 >> PHP >> 新手提問:陣列的問題。
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
新手提問:陣列的問題。
價值 : 80 QP  點閱數:1210 回應數:12
樓主

eva3223
門外漢
0 22
1868 64
發送站內信



請教一下
要從t表找今年的資料今年的資料五十筆

用t表的d欄

去找t1表的資料

用$re[$i]去存從t表撈到50個d欄資料

我先for迴圈印$re[$i]的資料


請問一下
(1)$re[$i]的陣列寫法正確嗎?我從for迴圈印的都是空白(沒資料)?

(2)請教還有其他的比較好的寫法嗎?(用join可以解嗎?)

請多多指教。謝謝。感恩。














本篇文章發表於2012-04-16 18:27
1樓
最有價值解答

溫子
捐贈 VP 給 溫子 檢舉此回應
html & php 混再一起誰看的懂呀!!
第九行那個 不明用意的東西 Orz
本篇文章回覆於2012-04-17 10:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

eva3223
檢舉此回應

不好意思

已拿掉html的語法
本篇文章回覆於2012-04-17 11:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
溫子有給你點出來問題了。

第9行那是什麼鬼。

這樣你在第15行。該段sql碼就會變成
SELECT * FROM t1 where re='ARRAY';

也難怪你會抓不到資料。
本篇文章回覆於2012-04-17 13:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
其實, 第9行那個是小鋪造成的...

樓主是想把第9行弄成紅字顯示

但是因為又加了程式碼標籤...
就變成了

本篇文章回覆於2012-04-17 14:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

eva3223
檢舉此回應
謝謝溫子和星空版主
那段html是跟小羊窒息說的一樣……
是個小小誤會……

但是就算沒有那行html
從for印出來的結果是五十次的ARRAY

本篇文章回覆於2012-04-17 14:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

溫子
捐贈 VP 給 溫子 檢舉此回應
To eva3223

你自己又再用一個 array 包起來等於這已經是二維以上的陣列了...
用 print_r($re); 看一下吧~
本篇文章回覆於2012-04-17 16:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

捷克
捐贈 VP 給 捷克 檢舉此回應
根本不需要迴圈,去查SQL LIMIT的用法,取資料庫50筆,1個while就能搞定

另外,一開始$re[$i]=array($row_Recordset1['d'])的$i不知打哪來的??
之後又跟for的$i混在一起
while跑第2次開始,re[$i]=array($row_Recordset1['d'])的$i一直都是同一個數字
沒意外的話,你看到的那50個ARRAY都是同一筆,把php.ini的display.error=On,應該會看到上百條錯誤。
本篇文章回覆於2012-04-17 20:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

eva3223
檢舉此回應
感謝各位

陣列問題已經確認陣列裡有正確資料

但是

帶到



就只會找到$re其中的一筆資料


本篇文章回覆於2012-04-19 11:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應

你的問題只是,不曉得如何將資料一直丟進陣列
while裡面又包了for
$re[$i]=array($row_Recordset1['d']); 的$i值又哪來
我在想,應該是流程根本有問題
請一步一步單純化進行
本篇文章回覆於2012-04-19 13:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
不錯的參考

Solty
檢舉此回應
樓主的程式思維基本上是不合理的,這會產生一個很嚴重的效能問題
假設確實撈出50筆,那麼你在while中將發出50次query...你真的覺得這樣可以嗎?
更何況裡面還夾了一個for..這意味這會發出50^2(2500)次query,當然這個for明顯無意義且是錯誤的
我只做一次...修行在個人囉~
本篇文章回覆於2012-04-21 03:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

Solty
檢舉此回應
第2行改一下,這寫法太見鬼了,字串裡竟然包函數...
$Y=date('Y');
$query_Recordset1 = "SELECT * FROM t where year='$Y'";
本篇文章回覆於2012-04-21 03:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

eva3223
檢舉此回應
謝謝solty和各位

不好意思程式邏輯不好

利用solty的程式把陣列裡資料都列出來

比較清楚問題在那

迴圈裡包迴圈是一件很詭異的事自已寫的都覺得很怪

還再仔細的想陣列和迴圈配合怎麼才不會做過多的動作

感謝感謝
本篇文章回覆於2012-04-24 09:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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