看板 PHP 關於我們 聯絡資訊
※ 引述《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
cwlin0416:其實,應該從資料庫結構解決,把程式寫這麼複雜不見的好 09/22 12:54
cwlin0416:維護 09/22 12:54
cwlin0416:這題若不改資料庫可以用mysql_fetch_assoc(), 然後用 ar 09/22 13:02
cwlin0416:ray_values($row) 純取值,不太需要自己寫foreach 09/22 13:02
tkdmaf:其實,我根本不會這樣做。 09/22 13:06