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() ?>