※ 引述《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