¡Estoy tratando de crear un juego de bingo, donde quiero mostrar mis registros anteriores en una selección (menú desplegable)! ¿Cómo obtengo mis datos de la base de datos en la lista desplegable seleccionada? A continuación se muestra mi archivo php
<html> <style> #rec_mode{ background-image: url('register.png'); background-size: 100% 100%; width: 100px; height: 50px; border: none; outline: 0px; -webkit-appearance: none; } </style> <body> <select name = "select_history" id="rec_mode"> <option selected="true" disabled="disabled"> <?php require_once 'config.php'; // $hist = mysqli_query($mysqli, "SELECT name FROM `movie_names` ORDER BY movieID DESC"); $hist = mysqli_query($mysqli,"SELECT m.name FROM movie_names m INNER JOIN host_table ht WHERE m.movieID = ht.random_num ORDER BY ID DESC"); while ($row = $hist->fetch_assoc()) { echo "<option value=\"select_history\">".$row['name']."</option>"; } ?> </option> </select> </body> </html>
¿Por qué ha agregado la etiqueta final de opción después del código php? ¿No se supone que debe ser así?
<select name = "select_history" id="rec_mode"> <option selected="true" disabled="disabled">Select Option</option> <?php require_once 'config.php'; $hist = mysqli_query($mysqli,"SELECT m.name FROM movie_names m INNER JOIN host_table ht WHERE m.movieID = ht.random_num ORDER BY ID DESC"); while ($row = $hist->fetch_assoc()){ echo "<option value=\"select_history\">".$row['name']."</option>"; } ?> </select>
Primero, seleccione el nombre antiguo seleccionado de la base de datos, por ejemplo, "harry potter", luego use la condición if para seleccionar el interior mientras se selecciona el bucle para el anterior
$hist = mysqli_query($mysqli,"SELECT m.name FROM movie_names m INNER JOIN host_table ht WHERE m.movieID = ht.random_num ORDER BY ID DESC"); $Bingo = "harry potter"; // previously selected value while ($row = $hist->fetch_assoc()) { $selected = ""; if($row["name"]==$Bingo) $selected = "selected"; // If you given Id use colunm name id echo "<option value=\"select_history\" $selected >".$row['name']."</option>"; }
Gracias
Primero, debe cerrar esa etiqueta de primera opción correctamente. Además, es posible que desee que el valor de la opción sea la columna de identificación de la base de datos. Utilice los nombres de columna correctos de sus tablas. Pero debería ser algo como esto:
<select name = "select_history" id="rec_mode"> <option selected="true" disabled="disabled"> -- SELECT -- </option> <!-- close it here --> <?php require_once 'config.php'; $hist = mysqli_query($mysqli,"SELECT m.movieID, m.name FROM movie_names m INNER JOIN host_table ht WHERE m.movieID = ht.random_num ORDER BY movieID DESC"); // make sure query is correct, test it in your mysql client while ($row = $hist->fetch_assoc()) { echo "<option value='{$row['movieID']}'>{$row['name']}</option>"; } ?>