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