gpt4 book ai didi

php - 使用来自 3 个表的查询填充表单字段

转载 作者:可可西里 更新时间:2023-11-01 07:56:04 26 4
gpt4 key购买 nike

我有表 users,其中包含字段 idusernameuser_sexuser_city。在 user_sexuser_city 列中,我保存了 int 值 1 ... n

还有两个表 user_sex 表,字段为 user_idmalefemale 和表 cities 字段 city_idcity_name

现在我希望当用户打开他的个人资料时能够对其进行编辑,但我无法填充字段。字段是 sex 字段的单选按钮和城市的下拉列表。

<div class="form-group">
<div class="col-md-6">
<label class="radio-inline" for="radios-0">
<input type="radio" name="user_sex" id="radios-0" value="1">
Male
</label>
<label class="radio-inline" for="radios-1">
<input type="radio" name="user_sex" id="radios-1" value="2">
Female
</label>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="selectbasic">City</label>
<div class="col-md-4">
<select id="selectbasic" name="selectbasic" class="form-control">
<option value="">Choose your city</option>
</select>
</div>
</div>

我想从用户表中填充这些字段。

这里是 SQL Fiddle我上面解释的内容。

注意:由于某些原因,当我在 phpmyadmin 中执行此查询时,它没有返回任何内容

更新:

$result = $pdo->prepare("
SELECT *, userSex.*, city.*
FROM users usr
JOIN user_sex userSex ON usr.user_sex = userSex.user_id
JOIN cities city ON usr.user_city = city.city_id
WHERE id =?
LIMIT 1");


$result -> bindParam(1, $id, PDO::PARAM_INT);
$result -> execute();
foreach ( $result as $row )
{
echo '<legend><strong><i>'.$row['username'].'</i></strong></legend>
<div class="form-group">
<div class="col-md-6">
<label class="radio-inline" for="radios-0">
<input type="radio" name="user_sex" id="radios-0" value="1">
Male
</label>
<label class="radio-inline" for="radios-1">
<input type="radio" name="user_sex" id="radios-1" value="2">
Female
</label>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="selectbasic">City</label>
<div class="col-md-4">
<select id="selectbasic" name="selectbasic" class="form-control">
<option value="">Choose your city</option>
</select>
</div>
</div>';
}

到此为止。这是空白页。正如我所说,我不知道如何填写表格。

如果我进行简单的查询,例如:SELECT * FROM users WHERE id = 1 我得到了正确的$row['username']。所以我认为问题出在查询中。

最佳答案

查询未返回,因为您将 usr.user_sex 连接到用户 ID。找到下面的工作:

SELECT usr.*, userSex.*, city.*
FROM users usr
JOIN user_sex userSex
ON usr.id = userSex.user_id
JOIN cities city
ON usr.user_city = city.city_id
WHERE id = 1

要检查单选按钮,您可以使用“checked”属性。如果性别等于 1 或 2 应该做一个简单的检查。

所以:

$sex = $row['user_sex'];
$maleChecked = ($sex == 1) ? "checked" : "";
$femaleChecked = ($sex == 2) ? "checked" : "";

<radio name="sex" value="1" $maleChecked >
<radio name="sex" value="2" $femaleChecked >

关于php - 使用来自 3 个表的查询填充表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33625389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com