我有一个简单的下拉菜单。
<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没问题。 // //更新 USER表设置如下。 ID,用户名,密码,first_name,last_name,email,home_color
当用户选择他的家庭颜色,然后提交它时,它将保存到数据库。
即1, Bob, MD5pass, Bob,Smith,Bob@bob.com, Black
2, Joe, MD5pass, Joe,Doe,joe@Doe.com, Green
现在我有另一个名为mount的表。 mount有颜色信息。 此表包含颜色名称和信息。
ID, color_name, color_info
ID是带有A_I的INT。
Bob登录并选择他的家庭颜色将其保存到他的个人资料中。 所以现在当一个人去bobs配置文件时,会看到颜色信息。 如何在其中读取配置文件信息并显示另一个表中的信息。
类似下面的代码。我知道代码是错误的,但我只能解释它。
if (black){
mysqli_query($mysqli,"SELECT * FROM mount;
}else{
(green)
答案 0 :(得分:0)
正如您所说,颜色保存在用户的表格中。问题是如何从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 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而不是颜色作为下拉列表并将其保存到用户的表中。