我有一个MySQL数据库包含两个表:如何检查是否选择了保管箱项目?
table1 (id, name, emailid)
table2 (id, email)
emailid
是table2.id
我试图做一个HTML表单,列出表1中的内容有一个下拉的关系框供用户选择电子邮件字段。电子邮件字段由table2
填入<options>
。
我的问题是:如何检查emailid
已选择了什么值,并在表单加载selected="selected"
时在Dropbox中选择已选项目?
我已经得到了一个解决方案,但我认为这不是正确的方法,并且正在寻找最佳实践方法。
我目前在做一个项目从table1
拉到但如果有超过1
这里是我的代码,到目前为止,它只会工作方式:
这是我得到的数据使窗体:
<?php
$sql = "SELECT table1.id as table1id, table1.name, table2.id as table2id
FROM table1
INNER JOIN table2 ON table1.emailid = table2.id
WHERE table1.id = {$id}";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);
$items1 = array('table1id' => $row['table1id']
'name' => $row['table1.name']
'table2id' => $row['table2id']);
$sql = "SELECT id, email FROM table2";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);
while ($row = mysqli_fetch_array($result)) {
$items2[] = array('id' => $row['id'],
'email' => $row['email'],
'selected' => ($row['id'] == $items1['table2id']) ? ' selected="selected" ' : '');
}
?>
这是我的HTML:
<tr>
<td><?php echo $items1['name']; ?></td>
<td><input type="hidden" name="table1id" value="<?php echo $items1['table1id']; ?>" />
<?php echo $items1['table1id']; ?></td>
<td>
<select name="email">
<?php foreach ($items2 as $item2): ?>
<option value="<?php echo $item2['id']; ?>"<?php echo $item2['selected']; ?>>
<?php echo $item2['email']; ?></option>
<?php endforeach; ?>
</select>
</td>
</tr>
这是怎样的形式更新:
<?php
$id = mysql_real_escape_string($_POST['table1id']);
$email = mysql_real_escape_string($_POST['email']);
$sql = "UPDATE table1 SET emailid = {$email} WHERE id = {$id}";
?>
是table1和table2s''id'主键? – Shad
是table1 PK是id,table2 PK是id。 table1.table2id填充table2.id,以便我可以检测到它是什么电子邮件 –
我们可以看到代码吗? – Eric