【问题标题】:Removing data from MYSQL that is comma delimited via Get and php从 MYSQL 中删除通过 Get 和 php 以逗号分隔的数据
【发布时间】:2014-04-26 02:12:24
【问题描述】:

我正在做的是将值添加到 mysql 表中,每个值用逗号分隔。并且每个新值都将再次附加到最后一个值,并用逗号分隔。现在这一切都是动态的。我遇到的问题是如何删除选定的值和逗号。我正在使用 php 和 mysql。 我可以用 explode 和 line[value] 读出这些值。

表名是值

table 由 id, value, value_array 组成

$value_selected 将是 $_GET['value']

value_array 是包含以逗号分隔的所有值的列。

数据库从 id 等于 Get 值的值中进行选择。 然后返回value_array中的所有值

然后我分解这些值,并通过 for 循环和 line[value] 读取 value_array 中的每个值。

the code:
start php
$value_selected = $_GET['value'];

$query = mysql_query("SELECT * FROM values WHERE id='$value_selected'");
while($result = mysql_fetch_assoc($query))
{
$check_values = $result['value_array'];
} 

$values = explode(",",$check_values);
$count_values = count($values);

for($counter = 0; $counter < $count_values; $counter++)
{
$line = each($values);

$query = mysql_query("SELECT * FROM values WHERE id='$line[value]'");
while($result = mysql_fetch_assoc($query))
{
    echo $result['value'].'<br/>'; 
}
}
php end

阅读它没有问题。我想要做的是能够通过 GET 选择一个值并从 value_array 中删除该值,同时还删除尾随逗号。我希望我能够更详细地解释我的问题。

【问题讨论】:

  • " 将值添加到 mysql 表中,每个值用逗号分隔" 这就是问题所在,您需要了解数据库规范化
  • 其实问题不大。它一直都在做。问题是 preg_match 我需要删除该数据和尾随逗号的数据。我做过很多这样的数据库。这是我第一次必须删除选定的值,无论是在前面、中间还是最后。
  • 一直由不知道怎么做的人完成

标签: php mysql


【解决方案1】:

使用 foreach 循环,取出分解后的字符串并重新组装它减去字符串 $value_selected 这样做:

$NewValue = '';
$i = 1;
foreach ($values as $Value) {
    if ($i > $count_values) {
        break;
    } else {
        if ($Value !== $value_selected) {//reassemble comma-sep string - $_GET['value']
            $NewValue = $NewValue . $Value . ",";
        }
    }
    $i++;
}

现在 $NewValue 不再包含 $_GET['value'],因为 if 语句中的连接仅在分解的片段 $Value 与 $_GET['value'] 不匹配时发生。此时根据需要更新数据库或回显 $NewValue 等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多