cargar datos de mysql en combobox php

publicado por: Anonymous

Buenas estoy cargando datos de mysql en un combobox,este es mi código de php que funciona maso menos bien.

<?php  
//CONECTAMOS CON LA BBDD


$conexion = new mysqli("localhost", "root", "", "discografica");
if ($conexion->connect_errno) {
    echo "Fallo al conectar a MySQL: (" . $conexion->connect_errno . ") " . $conexion->connect_error;
}
$sql="SELECT idartistas,nombre from artistas";
$result = $conexion->query($sql);

if ($result->num_rows > 0) //si la variable tiene al menos 1 fila entonces seguimos con el codigo
{
    $combobit="";
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) 
    {
        $combobit .=" <option value='".$row['nombre']."'>".$row['idartistas']."</option>"; 
    }
}
else
{
    echo "No hubo resultados";
}
?>  

y este es un pequeño formulario que tengo

<div class="container">

      <form method="post" role="form" action="insertarcancion.php" >
        <div class="form-group row" action="insertarcancion.php">

            <label for="nombre" class="col-sm-2 form-control-label">artista</label>
            <input    class="form-control" id="artista" placeholder="Escribe tu nombre" type="text" name="nombre">
            <select name="estado">
                <?php echo $combobit; ?>

            </select>
        </div>
        <div class="form-group row" action="insertarartista.php">
            <label for="nombre" class="col-sm-2 form-control-label">Nombre</label>
            <div class="col-sm-10">
              <input class="form-control" id="nombre" placeholder="Escribe tu nombre" type="text" name="nombre">
            </div>
        </div>

        </div>
        <center>
        <div class="form-group">
          <button type="submit" class="btn btn-primary offset-2">Enviar</button>
        </div>
        </center>
      </form>

    </td>
  </tr>

con eso que tengo consigo lo siguiente:

http://prntscr.com/ihxbdk

Lo que quiero conseguir es que los datos que obtengo de la base de datos se carguen dentro del input de artistas.
y los datos que carguen dentro del input ,necesito que sean idartistas y el nombre,ahora solo carga el id

solución

Invierte los datos en cada option:

$combobit="";
while ($row = $result->fetch_array(MYSQLI_ASSOC)) 
{
    $combobit .=" <option value="{$row['idartistas']}">{$row['nombre']}</option>"; 
}

De esta forma, el valor de la opción es idartistas y el contenido nombre.

Nota: Para evitar concatenaciones, puedes escapar las comillas dobles (anteponiendo una diagonal invertida) e incluir los elementos de array entre llaves.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *