php - PHP根据选择的选项检索mysql存储的字符数据返回错误的字符
问题描述
好吧,我很困惑。请参阅下面的代码。
- 它将所有字符正确加载到列表中。
- 我从来没有收到任何错误。
但是,有些东西并没有真正起作用。因为无论我选择什么字符并按下选择字符,它总是在数据库中检索名称为“SUPERADMIN”的字符。我认为这可能是一个会话搞砸了,但我没有登录具有 SUPERADMIN 字符的帐户。任何想法我搞砸了?:S
<!-- START: Load all characters from database, and put them in dropdown -->
<form method="post" action="admin_settings.php">
<input type="hidden" name="slct_id">
<select name="names">
<option value = "">---Select---</option>
<?php
$stmt = $mysqli_0001->prepare("SELECT role_name FROM mugame_0001.mu_role");
$stmt->execute();
$stmt->bind_result($slct_name);
while ($stmt->fetch()){
echo "<option value='$slct_name'>$slct_name</option>";
}
$stmt->close();
?>
</select>
<input type="submit" name="indoc_dochrselect" value="Select Character">
</form>
<!-- END: Load all characters from database, and put them in dropdown -->
<div class="nk-gap-2"></div> <!-- Creates a neat gap between the two thingie-mackdodies $ -->
<!-- START: Load character information based on the selected character -->
<?PHP
if (isset($_POST['indoc_dochrselect'])) {
$slct_id = $slct_name;
//$id = $_POST['id'];
if ($stmt = $mysqli_web->prepare("SELECT * from mugame_0001.mu_role WHERE role_name = ?")) {
$stmt->bind_param("s", $slct_id);
$stmt->execute();
$res = $stmt->get_result();
$data = $res->fetch_all(MYSQLI_ASSOC);
foreach ($data as $row)
{
echo "<form action='php/mysqli_action_admin.php' method='post'>";
echo "<input type='text' class='form-control' name='char_name' placeholder='" . $row['role_name'] . "'>";
echo "<input type='text' class='form-control' name='char_level' placeholder='" . $row['role_level'] . "'>";
echo "<input type='text' class='form-control' name='char_money' placeholder='" . $row['money'] . "'>";
echo "<button class='nk-btn link-effect-4 float-right' name='do_adm_getinfo_selected_role_update'>Update Character</button>";
echo "</form>";
}
}
}
?>
<!-- END: Load character information based on the selected character -->
解决方案
bound_result 变量$slct_name
正在向下流动。
这似乎是罪魁祸首:$slct_id = $slct_name;
您正在使用最终获取的值,但我相信您想使用 POSTed 值。
我假设最终获取的值是SUPERADMIN
.
我相信您想使用$_POST['names']
它,因为这是您选择字段中的名称属性。
推荐阅读
- java - 是否有任何算法可以将大约 40k 个字符减少为 2-3k 个字符?
- jquery - 手风琴第一个活跃
- c# - 有没有办法在 XAML 中绑定 x:Arguments 控件?
- r - 在 `facet_wrap` 中为每一列创建边框和标题
- r - 如何估计避免多重共线性的 lm 虚拟回归?
- python - OOP pygame 运动问题
- python - 为什么这两段代码有不同的复杂度?
- matlab - MATLAB PTB3 - 实验开始时处理闪烁错误显示
- java - 当我使用 ListView 和自定义 ArrayAdapter 启动活动时,Android 应用程序崩溃
- c++ - 如何在我的数据库程序中添加“减少项目数量”功能?