作者gpmm (银色)
看板PHP
标题Re: [请益] 请教阵列存取的问题
时间Tue Apr 24 15:07:07 2012
※ 引述《kerash (K.T)》之铭言:
: 恕删部分,假设考虑到只有 merge 问题要解决的话
: ※ 引述《sweetjp6 (水饺)》之铭言:
: : for ($i=0 ; $i < sizeof($alldrama); $i++){
: : $take = "SELECT brand, action, sequence FROM robot where
: : screenplayname= '".$alldrama[$i]."' " ;
: : $result = mysql_query($take, $db_connect) ;
: : $many = mysql_num_rows($result) ;
: : for ($j=0 ; $j < $many ; $j++){
: // $mergeDtl[] = mysql_fetch_assoc($result) ;
: // ^^ 问题在这大家都知道了,所以修正
: $mergeDtl = mysql_fetch_assoc($result); // array结果
: $action[] = $mergeDtl['action'] ;
: // 假如是 array_merge 的方法
: // $action = array_merge((array)$action,(array)$mergeDtl['action']);
: $brand[] = $mergeDtl['brand'] ;
: : }
: : }
来凑咖 XD
我的话的写法:
$all = implode ("', '", $alldrama); // 这边懒惰没做渗入过滤 :Q
$sql = "SELECT `brand`, `action`, `squence` FROM `robot`"
." WHERE `secreenplayname` IN ('$all')";
$res = mysql_query ($sql, $db_connect);
$mergeDtl = $action = $brand = Array ();
while ($tmp = mysql_fetch_assoc ($res)) {
$mergeDtl[] = $tmp;
$action = array_merge ($action, (array) $tmp['action']);
$brand[] = $tmp['brand'];
}
不过我很怀疑,从资料库拿出来的栏位资料型别应该不是阵列吧?
$action = array_merge ($action, (array) $tmp['action']);
这样凑的出 $action = ["hi", "i", "am", "trying", "it"] 吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 175.181.150.81
1F:→ kerash:请问 "从资料库拿出来的栏位资料型别应该不是阵列吧" 是指? 04/24 15:31
2F:→ kerash:mysql_fetch_assoc 回传是 array,还是我会错意了? 04/24 15:32
3F:→ gpmm:我是说单一栏位,像 $tmp['action'] 这个丢出来的应该不是 04/24 16:24
4F:→ gpmm: array 吧? o_O 04/24 16:24
5F:→ gpmm:基本上 MySQL 应该没有可以储存 Array 的栏位型态 04/24 16:24
6F:→ gpmm:所以这个实做怎麽看都怪怪的… 囧 04/24 16:25
7F:推 kerash:他应该只是要把结果取出来存成阵列,$tmp['action']出来是 04/24 16:32
8F:→ kerash:字串,再把他用转型成 array 吧~? @@ 04/24 16:32
9F:→ kerash:我是这样写啦,至於结果因为我目前没DB可以测,不确定..囧! 04/24 16:33