Re: [请益] 同页多图上传及更改?

楼主: crossdunk (推嘘自如)   2014-08-06 09:51:52
※ 引述《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
作者: Bambe (起笑的我们:P)   2014-08-06 22:12:00
你得到他了XD... 以前比较喜欢在后端处理东西~~~~
作者: GTBUG (gtjk)   2014-08-08 11:50:00
顺便请问一下 这类状况 选择json_encode是不是也可听说是json效能赢serialize 但不太会处理物件请问确实是这样吗?
楼主: crossdunk (推嘘自如)   2014-08-08 16:13:00
json_encode我只会用js去抓,不会用php..
作者: Bambe (起笑的我们:P)   2014-08-09 01:00:00
json与serialize的比较可以参考这篇 http://0rz.tw/uRGj0
作者: GTBUG (gtjk)   2014-08-11 11:26:00
了解!! 感恩: )
作者: Notte (不安分的灵魂)   2014-08-24 17:07:00
感恩! 我太晚回来看XD 还是谢谢各位的分享与指教!

Links booklink

Contact Us: admin [ a t ] ucptt.com