我有一个脚本,用于保存逗号分隔值到MySQL‘保留’字段的用户伟大。
例如'510,465,8552‘
然后我有下面的脚本,它从逗号分隔的‘保留’字段中呼应用户名。我正在努力的一点是能够点击用户旁边的删除图像,它将从逗号分隔值中删除用户id。
$entries = get_records_sql ("SELECT * FROM development ORDER BY pdorder ASC");
foreach($entries as $lesson) {
$waiting = explode(",", $lesson->reserve);
foreach($waiting as $unlucky) {
$reserveuser = get_record("user", "id", $unlucky);
if($reserveuser->id>1){
echo '<li id="lstno'.$lesson->id.'" name="'.$reserveuser->id.'">'.$reserveuser->firstname.' '.$reserveuser->lastname.' ';
echo '<a href="removereserve.php?id='.$lesson->id.'&reserve='.$reserveuser->id.'"><img title="unenrol" src="delete.gif" /></a>';
echo '</li>';
}
}任何指导都将不胜感激,提前感谢。
发布于 2012-02-28 20:05:50
嗯,如果所有的用户id都保存在一个字段中,我的方法应该是这样的http://codepad.org/KTAJ3ROb
希望这能帮助你解决这个问题!
发布于 2012-02-28 20:01:15
这可能是糟糕的数据库设计,除非你知道你在做什么。
只删除一个值的一种方法是读取整个单元格,使用php将其删除,然后将其写回。
$waiting = explode(",", $lesson->reserve);
//delete desired one
unset($waiting[3]);
//implode it back
$store = implode(',', $waiting);
mysql_query("UPDATE table SET reserve='$store'");如果逗号分隔的If是唯一的(您不必说mysql 11,20,11),那么您可以使用mysql REPLACE函数。
mysql_query("UPDATE table SET
reserve=REPLACE(reserve, ',$oldid', ',$newid'),
reserve=REPLACE(reserve, '$oldid,', '$newid,')");有一个特别处理第一个和最后一个值的小技巧。
发布于 2012-02-28 20:28:06
如果你想直接在SQL (MySQL)中创建它,那么你可以这样做:
UPDATE ... SET USERS = TRIM(REPLACE(' ' + USERS + ' ', ' 7 ', ' '))这将删除ID为7的用户。分隔符不是',‘,而是’‘(空白)。问题是,没有像TRIM()那样删除空格开头或结尾的',‘的函数。
或者,您必须在USERS-字段中始终接受前导和尾随的',‘,并如下所示:
UPDATE ... SET USERS = REPLACE(USERS, ',7,', ',')https://stackoverflow.com/questions/9481463
复制相似问题