我有一个简单的下拉菜单。
<form method="post" action="index.php">
<select name="mountname">
<option value="white">white</option>
<option value="black">black</option>
<option value="yellow">yellow</option>
<option value="green">green</option>
</select>
<input type="submit" value="Submit Pick" />若要保存所选内容,请使用。
if (!empty($_POST['color'])){
$id = $_SESSION['user_id'];
$color = $_POST['color'];
mysqli_query($mysqli,"UPDATE users SET home_color='".$color."' WHERE id='".$id."'")or die("error == ----> ".mysqli_error());
mysqli_close($mysqli);
header('Location: index.php');
}将颜色保存到mysql是没有问题的。//update//用户表是这样设置的。ID,用户名,密码,first_name,last_name,电子邮件,home_color
当用户选择他的主页颜色,然后提交它,它将保存到数据库。
ie 1, Bob, MD5pass, Bob,Smith,Bob@bob.com, Black
2, Joe, MD5pass, Joe,Doe,joe@Doe.com, Green
现在我有了另一张桌子叫挂载。它里面有颜色信息。此表保存颜色名称和信息。
ID, color_name, color_infoID是一个带有A_I的INT。
Bob登录并选择他的主页颜色,将其保存到他的配置文件中。因此,现在,当一个人去鲍勃配置文件,将看到颜色信息。如何使它读取配置文件信息并从另一个表中显示信息。
就像下面的代码。我知道密码是错的,但我只能解释一下。
if (black){
mysqli_query($mysqli,"SELECT * FROM mount;
}else{
(green)发布于 2014-09-22 06:56:32
正如您所说,颜色保存在用户的表中。问题是如何从mount中获取颜色数据以及用户的数据。在配置文件页上,您可以通过.获取用户的颜色细节。
$id = $_SESSION['user_id'];
$res = mysqli_query($mysqli,"SELECT * FROM users u, mount c WHERE u.home_color=c.color_name AND u.id='".$id."'")or die("error == ----> ".mysqli_error());
$result = mysqli_fetch_array($res);
mysqli_close($mysqli);现在,您可以操作$result,因为它包含用户详细信息以及颜色细节!我们通过相同的键从表users和mount获得数据,比较用户的home_color和挂载的color。
如果您将颜色保存在mount中,如“黑色”,我建议您在<select>下拉列表中保留相同的关键字,因为“黑色”不等于“黑色”。
另一件事,我想建议你是,改变你的选择下拉到动态。从表mount中获取颜色数据,并使用它类似..。
<select name="mountname">
<?php
$res_colors = mysqli_query($mysqli, "SELECT * FROM mount");
$colors = mysqli_fetch_array($res_colors);
foreach($colors as $color){
?>
<option value="<?php echo $color['color']; ?>"><?php echo $color['color']; ?></option>
<?php } ?>
</select>使用主键作为外键的最佳方法,所以使用mount的ID而不是颜色进行下拉,并将其保存到用户的表中。
https://stackoverflow.com/questions/25968029
复制相似问题