PHP Retrieve MySQL хранимых символьных данных на основе выбранной опции в <selection>возвращает неправильный символ - PullRequest
0 голосов
/ 05 ноября 2018

Хорошо, я в замешательстве. Смотрите код ниже.

  1. Загружает все символы правильно в список.
  2. Я никогда не получаю никаких ошибок.

Однако что-то на самом деле не работает. Поскольку не имеет значения, какой символ я выбираю и нажимаю выбранный символ, он всегда извлекает символ с именем «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 -->

1 Ответ

0 голосов
/ 05 ноября 2018

Переменная bound_result $slct_name течет вниз.

Кажется, это виновник: $slct_id = $slct_name;

Вы используете последнее извлеченное значение, но я полагаю, что вы хотите использовать значение POST.

Я предполагаю, что окончательное значение выборки равно SUPERADMIN.

Полагаю, вы хотите использовать $_POST['names'], поскольку это атрибут имени в поле выбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...