使用PHP和MySQL只使用一行更新包含多个值的列的确切值


Updating exact value of column containing multiple values by using only one row with PHP and MySQL?

如何在PHP和MySQL中仅使用一行来更新包含多个值的列的精确值?

选择:KPL:"1,2,3,4"

更新和删除旧值:KPL:"1,2,3,5"

不是这样的:KPL:"$_POST["KPL"]"

这是我当前的代码,它是这样的:KPL:"1,2,3,4,5"

$kpl=$_POST["kpl"];
$today = date("Y-m-d");
$bquery = mysql_query("SELECT kpl FROM table WHERE user='$user' AND date='$today'");
$bresult = mysql_fetch_array($bquery);
$b = $bresult[0];
$data = array();
foreach (explode(",", $b) as $i => $x) {
$data[$i]["kpl"] = $x;
if($data["kpl"] == $id) {
$exact = TRUE;
}
}
foreach ($data as $rivi) {
$kpl2 = $rivi["kpl"];
if(!(empty($kpl))) {
if($elintarvikeonkaytossa == TRUE) {
$b2 = sanitize($b.",".$kpl);
mysql_query("UPDATE table SET kpl='$b2' WHERE user='$user' AND date='$today'") or die(mysql_error());
}
}
}
?>

您必须重新设计数据库,因为它不符合第一个正常形式,即一个字段不能处理多个值-我们将使用CSV或txt。

长话短说,与其用草率的php替换代码,不如用kpl数据制作一个表,并将每个数字/id存储在不同的行中——这是因为你的数据库应该是关系型,而不仅仅是一个大的存储库。