Отображение результатов Mysqli в выпадающем списке - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть код, который при входе пользователя отображает определенную информацию, автоматически связанную с его учетной записью.Я пытаюсь получить это, чтобы перечислить информацию в раскрывающемся списке с каждым результатом в качестве новой опции.Сейчас он публикует результаты, но все в одной строке.

Текущее выходное изображение

Это изображение показывает, как запрос в настоящее время выводит результаты.Мне нужно, чтобы каждое из этих имен находилось в отдельной строке, а не в одной и той же опции.

<?php
$results = mysqli_query($db, "SELECT u.Name AS Name, u.activation as activation, u.lastlogin AS lastlogin, u.dwForbidTime AS dwForbidTime, u.RegDate AS RegDate, u.email AS email, group_concat(distinct g.szName SEPARATOR '<br />') AS szName, g.byShape as byShape, g.Level as Level
                                    FROM user AS u
                                    LEFT JOIN gamedata AS g on u.name = g.szAccountName
                                    WHERE Name='$user_check'
                                    ORDER BY g.szAccountName DESC
                                    LIMIT 3") or die("Error: " . mysqli_error($db));
echo "<select name='character'>";
while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC)) {
    echo '<option value="' . $row['szName'] . '">' . $row['szName'] . '</option>';
}
echo "</select>";
?>

Мой запрос выводится нормально, если я не пытаюсь использовать раскрывающийся список, но мне нужночтобы выбрать опцию для формы.

Ответы [ 2 ]

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

Не используйте GROUP_CONCAT(). Это объединяет все ваши результаты в одну строку, с <br> между каждым именем. Ваш цикл while ожидает, что каждое имя будет в отдельной строке результатов.

$results = mysqli_query($db, "
    SELECT distinct g.szName
    FROM user AS u
    LEFT JOIN gamedata AS g on u.name = g.szAccountName
    WHERE Name='$user_check'
    ORDER BY g.szAccountName DESC
    LIMIT 3") or die("Error: " . mysqli_error($db));

Вам также не нужно выбирать все остальные столбцы, если в раскрывающемся меню отображается только szName.

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

Я использовал foreach для тестирования этого, и он отлично работал.

$row = array('test', 'test 1', 'test 2');
echo "<select name='character'>";
foreach ($row as $result) {
    echo "<option value='$result'>$result</option>";
}
echo "</select>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...