作者tkdmaf (皮皮快跑)
看板PHP
标题Re: [请益] 我应该怎麽括起来?
时间Wed Sep 18 00:42:43 2013
※ 引述《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
1F:推 cwlin0416:其实,应该从资料库结构解决,把程式写这麽复杂不见的好 09/22 12:54
2F:→ cwlin0416:维护 09/22 12:54
3F:推 cwlin0416:这题若不改资料库可以用mysql_fetch_assoc(), 然後用 ar 09/22 13:02
4F:→ cwlin0416:ray_values($row) 纯取值,不太需要自己写foreach 09/22 13:02
5F:→ tkdmaf:其实,我根本不会这样做。 09/22 13:06