像SHEF說,你需要的3個表user
,sport
,user_sport
用戶
+----+----------------+-----+
| id | name | age |
+----+----------------+-----+
| 1 | Freddy Mercury | 65 |
| 2 | Ian Gillan | 66 |
| . | . | . |
+----+----------------+-----+
運動
+----+----------+
| id | sport |
+----+----------+
| 1 | Cricket |
| 2 | Football |
| 3 | Chess |
+----+----------+
user_sport
+---------+----------+
| user_id | sport_id |
+---------+----------+
| . | . |
+---------+----------+
生成與此PHP的複選框:
$sql = '/* Current User Sports */
SELECT
sp.id AS "sport_id"
, sp.name As "sport"
, us.user_id AS "checked"
FROM sport AS sp
LEFT JOIN user_sport AS us ON (
sp.id = us.sport_id
AND user_id = '.$user_id.'
)
;';
$result = query($sql);
foreach ($result as $row) {
?>
<label>
<input type="checkbox" name="sports[<?php echo ($row['sport_id']) ?>]" checked="checked" />
<?php echo ($row['sport']) ?>
</label>
<?php
}
這會給你這個HTML:
<input type="checkbox" name="sports[1]" checked="checked" />Cricket
<input type="checkbox" name="sports[2]" checked="checked" />Football
<input type="checkbox" name="sports[3]" checked="checked" />Chess
更新部分
首先查詢(刪除當前$ USER_ID)值:)
DELETE FROM user_sport WHERE user_id = $user_id;
第二次查詢(插入當前$ user_ID的新值:
$sql = 'INSERT INTO user_sport
(user_id, sport_id)
VALUES
(';
$tmp = array();
foreach ($sports as $sport_id => $void) {
$tmp[] = "($user_id, $sport_id)"
}
$sql .= implode("\n, ", $tmp).'
)
;';
這可以插入/更新工作/刪除
你應該至少有2個表來管理它。你需要了解查詢,模型還是兩者? –
@Glide:我需要查詢和模型 – karthick