Ver Mensaje Individual
  #17 (permalink)  
Antiguo 19/06/2007, 15:22
Avatar de _ssx
_ssx
 
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Re: Llenar combo con datos de una tabla

Hola :) sabes implemente una pequeña clase para que no tengas que lidiar con esto.. ya que a veces usamos mucho esto..

Código PHP:
<?php
class comboDb{
//variables miembro de la clase
private $sql;
private 
$db;
private 
$linked;
private 
$servidor;
private 
$usr;
private 
$pass;
private 
$valor;
private 
$nom_select;
private 
$contenido;
//creamos un constructor para conectar directamente y pasarle los datos
public function comboDb($serv,$user,$p,$base)
{
$this->db $base;
$this->usr $user;
$this->pass $p;
$this->servidor $serv;
}
public function 
setSql($consulta)
    {
    
$this->sql mysql_query($consulta,$this->getConection()) or die (mysql_error());
    }
public function 
getConection()
    {
    if(!(
$this->linked=mysql_connect($this->servidor,$this->usr,$this->pass)))
        {
        echo (
"Error: No se pudo conectar al servidor especificado");
        exit();
        }
    else
        {
            if(!
mysql_select_db($this->db,$this->linked))
                {
                echo(
"No se pudo conectar a la base de datos");
                exit();
                }
            else
                {
                return 
$this->linked;
                }
        }
    }    
public function 
setFields($val,$nom,$con)
    {
    
$this->valor $val;
    
$this->nom_select $nom;
    
$this->contenido $con;
    }
public function 
getCombo()
    {
    echo 
"<select name=\"".$this->nom_select."\">\n";
    while(
$fila mysql_fetch_array($this->sql))
        {
        
//imprimimos el select en html
        
echo "<option value=\"".$fila[$this->valor]."\">".$fila[$this->contenido]."</option>\n";
        }
    echo 
"<\select>\n";
    }

function 
getComboEdit($select)
    {
    echo 
"<select name=\"".$this->nom_select."\">\n";
    while(
$fila mysql_fetch_array($this->sql))
        {
        if(
$fila[$this->contenido]==$select)
            {
        echo 
"<option value=\"".$fila[$this->valor]."\" selected=\"selected\">".$fila[$this->contenido]."</option>\n";    
            }else {
        
//imprimimos el select en html
        
echo "<option value=\"".$fila[$this->valor]."\">".$fila[$this->contenido]."</option>\n";
        }
        }
    echo 
"<\select>\n";
    }
}
?>
guarda el codigo de arriba en un archivo llamado combodb.php

y en la pagina donde lo vayas a utilizar su uso es asi..
pones esto en tus primeras lineas de tu archivo

Código PHP:

include("combodb.php");
//aqui pones tus datos de acceso a la DB
$materias = new comboDb("localhost","usuario","password","tubasededatos");
//haces la consulta 
$materias->setSql("SELECT codmat, nommat FROM materias");
//estos tres parametros son 
//1.- el valor que tendran las opciones del combo
//2.- el nombre del select
//3.- el valor que mostrara el combo
$materias->setFields("codigo","Nommat","materia"); 
y luego donde lo vayas a imprimir para mostrar el COMBO pones..

Código PHP:
<?php $materias->getCombo() ?>
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador