1

如何在 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());
}
}
}
?>
4

1 回答 1

0

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

长话短说,您应该用您的kpl数据制作一个表格,并将每个数字/ID 存储在不同的行中,而不是弄乱草率的 php 替换代码 - 这是因为您的数据库应该是关系型的,而不仅仅是一个大的东西存储库。

于 2012-09-01T17:47:00.833 回答