通过下拉菜单从mysql中获取所选信息

时间:2014-09-22 06:42:58

标签: php mysql

我有一个简单的下拉菜单。

<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)

1 个答案:

答案 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_colorcolor获取数据>。

如果您在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而不是颜色作为下拉列表并将其保存到用户的表中。