簡體   English   中英

更新mysql php中的特定字段

[英]UPDATE specific fields in mysql php

我在MySQL中有一個名為product的表,其中字段設置如下。

id int(3) NOT NULL AUTO_INCREMENT,
nm varchar(255),
category varchar(255),
price int(4)

當我插入一個新產品,然后我已經放了一些代碼來檢查重復,如下所示。

select nm,category from product where nm='".$pnm."' AND category='".$cat."'

如果有任何行,那么代碼將不會在數據庫中插入該記錄...(問題現在開始)我在更新期間設置的相同條件..如果用戶編輯該產品並更改已存在於數據庫中的名稱或類別那么它' ll返回false並退出代碼..

現在,如果我只想更新價格,那么名稱和類別將是相同的然后做什么???

請盡力! 謝謝各位朋友

您可以使用唯一ID來執行此操作。在更新時首先檢查重復,如果發生重復,則只更新除名稱和類別之外的其他字段,否則更新將要更改的所有字段。

我給你demo.Make根據你的要求進行更改,比如字段名稱,表名和所有這些。

$sql="select * from product where nm='".$_REQUEST['name']."'" or category='".$_REQUEST['category']."';
$query=mysql_query($sql);
if(mysql_num_rows($query)>0)
{
 while($row=mysql_fetch_array($query))
 {
   $id=$row['id'];
   if(isset($_REQUEST['price']))
   {
    $sql="update product set price='".$_REQUEST['price']."' where id='$id'";
    $query=mysql_query($sql);
   }
 }
}
else
{
$sql="update product set nm='".$_REQUEST['name']."',category='".$_REQUEST['category']."',price='".$_REQUEST['price']."' where id='$id'";
$query=mysql_query($sql);
}

兩步解決方案: - 創建UNIQUE索引 - 使用INSERT IGNOREUPDATE IGNORE而不是INSERTUPDATE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM