樓主貼出的代碼是主要代碼不是完整代碼,以下是對你貼出代碼的修改,接收數(shù)組并批量更新
創(chuàng)新互聯(lián)為企業(yè)級客戶提高一站式互聯(lián)網+設計服務,主要包括成都網站建設、網站設計、重慶APP軟件開發(fā)、微信小程序開發(fā)、宣傳片制作、LOGO設計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經驗豐富的經驗,可以確保每一個作品的質量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
接收數(shù)據(jù)格式形如:
array(
0=array(
'id' = 1,
'title'= '標題1'
'url'= '...'
),
1=array(
'id' = 1,
'title'= '標題1'
'url'= '...'
),
)
注意在原來的基礎上加了更新條件id,不加的話是會更新全部的。
A頁面代碼:
?php
$exec="select * from focusimg";
$result = mysql_query($exec,$link);
$i=0;
while($pt=mysql_fetch_array($result)){
?
tr onmouseover="this.className='admTr'" onmouseout="this.className=''"
td width="17%" align="right"標題?php echo $pt['id']; ?:input name="?php echo "focusimg[$i][id]"; ?" value="?php echo $pt['id']; ?" type="hidden"http://td
tdinput name="?php echo "focusimg[$i][title]"; ?" type="text" id="textfield" value="?php echo $pt['title'];?" size="30" //td
td width="17%" align="right"鏈接?php echo $pt['id']; ?:/td
tdinput name="?php echo "focusimg[$i][url]"; ?" type="text" id="textfield" value="?php echo $pt['url'];?" size="30" / /td
/tr
?php
$i++;
};
?
B頁面代碼:
?php
include 'conn.php';
$focusimg=$_POST['focusimg'];
foreach($focusimg as $k=$v) {
$exec="update chips set title='{$v[title]}',url='{$v[url]}' where id='{$v[id]}'";
mysql_query($exec, $link);
}
mysql_close($link);
echo "edit OK!";
?
以前我用過querylist插件抓數(shù)據(jù),服務器寫和定時器,每天固定時間去運行腳本。朝這個方式試試
高并發(fā)下數(shù)據(jù)的更新,應該 update table xxx set num = num - 1 的方式,這種方式可以保證數(shù)據(jù)的正確性。
但是會出現(xiàn) num 為負數(shù)的問題,如果庫存為負數(shù),顯然是不合理的。
于是,需要將 num 字段設置為 無符號整型,這樣就不會出現(xiàn)負數(shù)了,因為,如果減到負數(shù),就會更新失敗。
但是這種依然會造成很多無用的更新語句的執(zhí)行,是不合理的。
于是,update table xxx set num = num - 1 where num 0,
這樣當 num 等于0之后就不會去更新數(shù)據(jù)庫了,減少了很多無用的開銷。
這種方式被稱作“樂觀鎖”
此外,對于搶紅包這種非整數(shù)的操作,我們應該轉換為整數(shù)的操作。
關于搶購超賣的控制
一般搶購功能是一個相對于正常售賣系統(tǒng)來說獨立的子系統(tǒng),這樣既可以防止搶購時的高并發(fā)影響到正常系統(tǒng),
也可以做到針對于搶購業(yè)務的特殊處理。
在后臺設計一些功能,可以就昂正常的商品加入到搶購活動中并編輯成為搶購商品,寫入到搶購商品表,當然
也可以把搶購商品表寫入redis而不是數(shù)據(jù)表。并且在原商品表寫入一個同樣的商品(id相同,用于訂單查看,
此商品不可購買)
如果是數(shù)據(jù)表,為了控制超賣,需要對表進行行鎖,更新的時候帶上 where goods_amount 0。
如果是redis,使用 hincrby 一個負數(shù)來減庫存,并且 hincrby 會返回改變后的值,再來判斷返回值是否大于0,
因為redis每個命令都是原子性的,這樣不用鎖表就可控制超賣。
第一種就是根據(jù)事務來實現(xiàn)這個功能,多條更新用事務來實現(xiàn)和回滾
第二種 就是循環(huán)更新了,這個不需要數(shù)據(jù)一致性,即其中一條語句更新失敗 不影響其他數(shù)據(jù),建議還是用事務
可以同時更新內容相同的記錄,比如id=1、2、3的記錄的狀態(tài)都改為0;那么可以使用$db-where("id in(1,2,3)")-save(array('status'=0));
有兩種實現(xiàn)方法:
1、你可以用PHP服務器推技術,當數(shù)據(jù)發(fā)生變化時,主動推送到頁面顯示。相關技術可以參考文檔。百度也很多。
2、你可以用Javascript,每過一秒鐘,使用Ajax獲取數(shù)據(jù),一秒鐘刷新一次,也可以實現(xiàn)的。
第一種我也不會。第二種相信你可以的。
while的話是循環(huán),你用了只會一行行加
本文標題:php多條數(shù)據(jù)實時更新 php實時刷新數(shù)據(jù)
URL標題:http://chinadenli.net/article42/dodcphc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、定制開發(fā)、品牌網站建設、云服務器、面包屑導航、網站營銷
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)