我正在使用数组@ $ new = implode(',',$ _ POST ['new'])更新单列数据库;
我使用的查询工作正常
$query = mysql_query("UPDATE events SET std_list=CONCAT( std_list, ',".$new."') WHERE id='".$district."' ") or die(mysql_error());
现在我还想在向其添加新数据之前从同一列中删除一些数据..例如列名称std_list包含值1,2,3,4,5,6,7,8,9和另一个变量$ a包含4,5,6和$ new = 4,5。我想从列中删除4,5,6,并且只想添加4,5。
答案 0 :(得分:0)
根据我的理解,您要从$a
移除$std_list
,但保留$new
的值。
$std_list = '1,2,3,4,5,6,7,8,9';
$a = '4,5,6';
$new = '4,5';
// Create arrays from values
$std_list_array = explode(',', $std_list);
$a_array = explode(',', $a);
$new_array = explode(',', $new);
// Remove values from $a
$values = array_diff($std_list_array, $a_array);
// Add values from $new
$values = array_merge($values, $new_array);
// Only keep unique values
$values = array_unique($values);
// Sort (maybe?)
sort($values);
// Convert to string
$values = implode(',', $values);
// string(15) "1,2,3,4,5,7,8,9"
var_dump($values);
然后,您可以将$values
插入数据库。我用mysqli since mysql_query is deprecated编写了这个:
$conn = new mysqli('localhost', 'user', 'password', 'database');
$stmt = $conn->prepare("UPDATE events SET std_list = ? WHERE id = ?");
$stmt->bind_param('si', $values, $district);
$result = $stmt->execute();
在此处测试代码:http://ideone.com/e3THDV