作者crossdunk (鲁来又鲁去)
看板PHP
标题Re: [请益] 同页多图上传及更改?
时间Wed Aug 6 09:51:52 2014
※ 引述《Notte (why so serious ?)》之铭言:
: 因为该页前端 需要五张图
: 所以在资料库只放了一笔资料 纪录五张图的存取位置
: 後台的设计 也写好五张图去捞资料库的位置
: 如果我一次上传五张 那麽结果是正常的
: 问题是 如果我再次去上传更改某一张图 那麽其余四张会变成空值
: 我是用UPDATE SET 去更改上传过的图
: 但因为四张没改而抓不到POST的值而导致空值
: 请问我应该要怎麽改写才比较正确呢???
简单回一下推文大概是怎麽样@@
chemberlain:把五张图放进阵列,serialize後再写进资料库
c大的意思是假设五张图的路径方别是1,2,3,4,5
那麽把这五个路径放进阵列并让他沉睡(利用serialize)
a = array(1,2,3,4,5)
b = serialize(a),再把b放进资料库栏位里,这样在资料库内就只需要一个栏位
要更改的时候读取资料库的栏位,然後重新唤醒他
a = unserialize(b) 这时候a阵列就会是(1,2,3,4,5)了
再分别放入输入栏内更改就行了,类似
foreach($a as $a_val){
echo "<input type='text' name=a[] value='$a_val'>";
}
送出後,再让a沉睡成b在写入资料库就可以了
这种方式跟
crossdunk:如果你不想改资料库结构,我建议是五个都抓出来 08/05 10:26
→ crossdunk:都放进去input text里面 改要改的 这样没改的也会有值
差不多,都是把值都叫出来,有改的改没改的不动,
在一起更新,只是後者不用改资料库结构
Bambe:所以才说你要在程式里加工,让空值也不要一起update进去
这种方法比较麻烦,其实小弟孤陋寡闻,也不懂是什麽意思
自以为大概是不用捞资料库的值,分别开五个输入栏代表五张图
有值的就是要改的,没值的代表不更动
直接用if($输入栏=='')来判断要输入的sql指令
$sql = 'update xxx set ';
if($pic1!='') $sql .= 'pic1 = ".$pic1."';
类似这样,不过我不知道你是用哪种方式使用资料库的,所以随便打打而已
大致上就是这样吧
赚赚P币XD
感谢各位先进观看
有错请指正罗 QQ
--
Sent from my 3cm
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.120.19.218
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1407289915.A.FAF.html
1F:推 Bambe:你得到他了XD... 以前比较喜欢在後端处理东西~~~~ 08/06 22:12
2F:推 GTBUG:顺便请问一下 这类状况 选择json_encode是不是也可 08/08 11:50
3F:→ GTBUG:听说是json效能赢serialize 但不太会处理物件 08/08 11:51
4F:→ GTBUG:请问确实是这样吗? 08/08 11:52
5F:→ crossdunk:json_encode我只会用js去抓,不会用php.. 08/08 16:13
7F:推 GTBUG: 了解!! 感恩: ) 08/11 11:26
8F:推 Notte: 感恩! 我太晚回来看XD 还是谢谢各位的分享与指教! 08/24 17:07