【发布时间】:2015-04-18 14:22:15
【问题描述】:
我的网站上有一个表格,我想更新用户的信息(编辑个人资料),并且用户的一些信息与用户可能患有的疾病有关。 我有复选框可以选择任何疾病,但是我如何可以根据我的数据库表中的数据检查复选框。 复选框的代码如下...
<label id="Disease">Your Disease(s):</label><br />
<!--emfanizei tis epiloges gia ta diseases me basi auta p exoume sti basi mas -->
<?php
$sql = "SELECT name FROM disease";
$query_resource = mysql_query($sql);
while( $name = mysql_fetch_assoc($query_resource) ):
?>
<span><?php echo $name['name']; ?></span>
<input type="checkbox" name="disease[]" value="<?php echo $name['name']; ?>" /><br />
<?php endwhile; ?>
我的数据库表被命名为病人,看起来像这样
我的复选框看起来像这样...
我的更新代码...
if(isset($_POST['username'])){
$fname = mysql_real_escape_string($_POST["fname"]);
$lname = mysql_real_escape_string($_POST["lname"]);
$email = mysql_real_escape_string($_POST["email"]);
$password = mysql_real_escape_string($_POST["password"]);
$age = ($_POST["age"]);
$disease = implode(",",$_POST["disease"]);
$query="UPDATE patient
SET fname = '$fname', lname = '$lname', email = '$email', password = '$password', age='$age', disease='$disease'
WHERE username='$username'";
mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=0){
echo "<p>($username) Record Updated<p>";
}else{
echo "<p>($username) Not Updated<p>";
}
}
【问题讨论】:
-
旁注问题:您之前的另一个问题stackoverflow.com/q/29717770,您使用的是PDO,但在此您使用的是
mysql_函数;为什么?您现在不会混合使用那些不同的 MySQL API,是吗? -
@Fred-ii- 因为这是被问到的
-
我不明白你的意思。
-
@Fred-ii- 我在这个页面中使用 mysql,因为我很久以前就开始了,我没有时间改变它
-
(1) 您的
patient表设计不当。逗号分隔的列表 -Allergy,Heart Disease,Neurological- 应该作为关系表来完成,因为在这种格式下,做你想做的事情会更加困难。 (2) 具体到你的问题。您需要查询您的patient表以获取他们的疾病,但您没有在此处显示该尝试。