Re: [請益] 我應該怎麼括起來?

看板PHP作者 (皮皮快跑)時間12年前 (2013/09/18 00:42), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串4/4 (看更多)
※ 引述《mydoc (mydoc)》之銘言: : 我現在有用mysql資料庫做一些資料, : 有以下程式要寫...但我一直括不起來一起用...應該可以有方法寫出來吧? : $sql = "SELECT * FROM `Q` WHERE username='".$_SESSION['username']."'" ; : : $sql = "SELECT * FROM `Q` WHERE username='$_SESSION['username']" ; : $result = mysql_query($sql) ; : $row = mysql_fetch_object($result); : 以下是我一直沒成功的段 : $n = array() ; : for($j = 0 ; $j<7 ; $j++) : { : $n[$j] = "$row->Q_{$j}_total" ; : } : 無論我寫 $row->Q_."$j"._total ; : 或是 {$row->Q_{$j}_total} ; : 或是 "$row->Q_".$j."_total" ; : 等等都不能成功的讀取成 $row->Q_1_total : 由於是自學寫網頁所以很多預備知識都東缺西缺的 : 可能這個問題很基本,但我還是不懂,請見諒 老實說。 假定你要取的七個欄位是Q_0_total到Q_6_total 我會建議這種做法: $username = $_SESSION['username']; for($i = 0;$i < 7 ;$i++){ $field_array[] = 'Q_'.$i.'_total'; } $field_string = implode(',',$field_array); $sql = "SELECT {$field_string} FROM `Q` WHERE username = '{$username}'"; $result = mysql_query($sql); $row = mysql_fetch_object($result); $n = array(); foreach($row as $value){ $n[] = $value; } 但是假設說 你要取的是全部欄位的資料,卻只存部份欄位到n的話。 那就先做這一段: for($i = 0;$i < 7 ;$i++){ $field_array[] = 'Q_'.$i.'_total'; } 然後照你原本的code取得資料庫 最後改成這樣: foreach($row as $key => $value){ if(in_array($key,$field_array)){ $n[] = $value; } } 能處理的方式其實非常多。 重點是你怎麼把複雜的東西單純的處理掉。 不過其實大多數在處理這些東西之前。 也是要先看你畫面的呈現模式。 因為你只展示了資料取得的部份。 卻沒有展示你的畫面。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.99.200

09/22 12:54, , 1F
其實,應該從資料庫結構解決,把程式寫這麼複雜不見的好
09/22 12:54, 1F

09/22 12:54, , 2F
維護
09/22 12:54, 2F

09/22 13:02, , 3F
這題若不改資料庫可以用mysql_fetch_assoc(), 然後用 ar
09/22 13:02, 3F

09/22 13:02, , 4F
ray_values($row) 純取值,不太需要自己寫foreach
09/22 13:02, 4F

09/22 13:06, , 5F
其實,我根本不會這樣做。
09/22 13:06, 5F
文章代碼(AID): #1IE8Q7uj (PHP)
討論串 (同標題文章)
文章代碼(AID): #1IE8Q7uj (PHP)