domingo, 4 de marzo de 2012

Php - Conexión Mysql con combobox

Para que en un combobox (select llamado en Php) nos muestre elementos basados en una conexión a una base de datos (en este caso Mysql), debemos hacer lo siguiente:

<?php
    function getcombobox(){
     
        $link=mysql_connect(host, user, pass)or die (exit(mysql_error()));
        mysql_select_db(nombredb);
        mysql_query("SET NAMES 'utf8'");
        $sql = "SELECT * FROM nombretabla";
        $result = mysql_query($sql,$link);
        $row = mysql_num_rows($result);
     
        if($row = mysql_fetch_array($result)){
            echo "<select name= nombreselect style='width:176px;'>";
            echo "<option value= '0' selected='selected'>Seleccione</option>";
            do {
                echo "<option value= '".$row[variableid]."'>".$row[‘mostrar’]."</option>";
            }
                while ($row = mysql_fetch_array($result));
                echo "</select>";      
        }
    }
?>
Debemos recordar que todas las palabras en cursiva son las que debemos cambiar por nuestros datos, por ejemplo host, user, pass, nombredb, etc. Este ejemplo es simplemente estático, pero es posible que necesitemos realizar un método que reciba diferentes parámetros y así usarlo más de una vez. El siguiente ejemplo muestra una forma que podemos hacer:

<?php
    function getcombobox($host, $user, $pass, $db, $table, $id, $order, $nameselect, $type,     $showrow){
     
        $link=mysql_connect($host, $user, $pass)or die (exit(mysql_error()));
        mysql_select_db($db);
        mysql_query("SET NAMES 'utf8'");
        $sql = "SELECT * FROM $table order by $order asc";
        $result = mysql_query($sql,$link);
        $row = mysql_num_rows($result);
     
        if($row = mysql_fetch_array($result)){
            echo "<select name= $nameselect style='width:176px;'>";
            echo "<option value= '0' selected='selected'>Seleccione $type</option>";
            do {
                echo "<option value= '".$row[$id]."'>".$row[$showrow]."</option>";
            }
                while ($row = mysql_fetch_array($result));
                echo "</select>";      
        }
    }
?>
En el que las variables son las siguientes:
  • $host: Nombre del host a usar, normalmente es localhost. 
  • $user: Nombre de usuario de la conexión, normalmente es root. 
  • $pass: Contraseña del usuario a conectar, normalmente es vacía, al menos que hayamos indicado lo contrario. 
  • $db: Nombre de la base de datos a la que nos conectamos, debe estar creada. 
  • $table: Nombre de la tabla que queremos obtener los datos, debe estar creada. 
  • $id: es el identificador de la opción del select. 
  • $order: es el orden en el que mostraremos los datos, por ejemplo ordenar por orden alfabético. $nameselect: nombre que obtendrá nuestro select. 
  • $type: Es la variable que nos mostrará como default, por ejemplo “seleccione hardware”, seleccione software”, de esta forma el dialogo no será estático.
  • $showrow: Que es lo que se vera en el select, el id es el identificador, y showrow es lo que se muestra. Por ejemplo id=1 showrow=mouse.
Luego simplemente para mostrarlo debemos llamarlo desde nuestra hoja e incluirlo, por ejemplo:

<?php include('ruta/combobox.php'); ?>
<?php echo getcombobox('host', 'user', 'pass', 'db', 'tabla', 'id', 'orden', 'nameselect', 'tipo', 'showrow'); ?>

2 comentarios:

Hola e seguido el tuto pero no me muestra la lista de paises que puse.
si me pasas un correo te mando el script para que lo veas


si tuvieras la amabilidad de hecharme una manito estaria muy agradecido .
gracias apersonas como tu e aprendido mucho mi correo es :
leonardosenges@hotmail.com
abrazo

Estimado, acabo de leer tu comentario, aún necesitas ayuda?


Saludos

Publicar un comentario