У меня есть таблица MySQL с именем Users
с столбцами Name
и NameID
.
Подобно…
Имя | NameID
Брэд | бод
Том | Т.С.
Я пытаюсь вытащить все значения Name
и заполнить выпадающий список с помощью mysqli. Я сталкиваюсь с проблемами и надеюсь, что кто-то здесь может помочь.
Я новичок в mysqli, поэтому немного борюсь. Вот код ..
connect.php …
<?php $dbname = 'mydabase'; $dbuser = 'myuser'; $dbpass = 'mypass'; ?>
В index.php …
<?php include ("connect.php"); $db = new mysqli('localhost', $dbuser, $dbpass, $dbnam); if (!$db) { exit('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } ?> <div class="label">Select Name:</div> <select name="names"> <option value = "">---Select---</option> <?php $queryusers = "SELECT `Name` FROM `Users` "; $db = mysqli_query($queryusers); while ( $d=mysqli_fetch_assoc($db)) { echo "<option value='{".$d['Name']."}'></option>"; } ?> </select>
Причина, по которой ваш выбор не заполняется, заключается в том, что mysqli_query не получает соединение.
Изменить:
$db = mysqli_query($queryusers);
В:
$db = mysqli_query($db, $queryusers);
Также добавьте имя между (иначе вы получите список без текста):
while ( $d=mysqli_fetch_assoc($db)) { echo "<option value='{".$d['Name']."}'>".$d['Name']."</option>"; }
Надеюсь, это помогло вам!
Если вы инициализировали объект, вы должны продолжать использовать mysqli как объект.
Нет необходимости использовать подготовленные заявления, но это не так.
<?php include ("connect.php"); $db = new mysqli('localhost', $dbuser, $dbpass, $dbnam); ?> <div class="label">Select Name:</div> <select name="names"> <option value = "">---Select---</option> <?php $stmt = $db->prepare("SELECT `Name` FROM `Users`"); $stmt->execute(); $stmt->bind_result($name); while ($stmt->fetch()){ echo "<option value='$name'></option>"; } $stmt->close(); ?> </select>