Foros del Web » Programando para Internet » PHP »

Problema con select en DB Mysql PHP

Estas en el tema de Problema con select en DB Mysql PHP en el foro de PHP en Foros del Web. Es urgente please, no se porque no encuentro en ningun sitio mi caso, y es que en mi archivo pagina.php llene un combobox con la ...
  #1 (permalink)  
Antiguo 02/11/2012, 01:28
(Desactivado)
 
Fecha de Ingreso: septiembre-2012
Ubicación: Peru Villa Maria
Mensajes: 29
Antigüedad: 11 años, 6 meses
Puntos: 0
Problema con select en DB Mysql PHP

Es urgente please, no se porque no encuentro en ningun sitio mi caso, y es que en mi archivo pagina.php llene un combobox con la columna descripcion de la tabla tipo_de_trabajo y yo quiero que al hacerle el _POST al formulario, que obviamente me mandara a mi archivo control_reg.php, donde esta el codigo necesario para registrar el trabajo, pero en PHP no se como obtener la id del registro seleccionado osea: tengo mi tabla tipo_de_trabajo con las columnmas

ID DESCRIPCION
1 TIPO A
2 TIPO B
3 TIPO C

Y lo que yo quiero es que me pase por el metodo POST el id pero que muestre la descripcion, algo parecido a como se hace en VB.NET ,y parece que aqui no se hace de ese modo ayudenme please... me urge :(
  #2 (permalink)  
Antiguo 02/11/2012, 09:42
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 14 años, 11 meses
Puntos: 38
Respuesta: Problema con select en DB Mysql PHP

Por lo que entendi de tu problema.

Código PHP:
<?php

$sql 
mysql_query("SELECT id, descripcion FROM tabla");

$descripcion = array();
                                
while(
$queryResult mysql_fetch_assoc($sql)){
    
$descripcion[] = $queryResult;
}


?>  
<select name="nombre">

<?php foreach($descripcion as $d){ ?>
     
        <option value="<?php echo $d['id']; ?>"><?php echo $d['descripcion']; ?></option>

<?php ?>
?>  
</select>
espero te ayude

buena suerte
  #3 (permalink)  
Antiguo 02/11/2012, 10:00
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 7 meses
Puntos: 15
Respuesta: Problema con select en DB Mysql PHP

Yo preferí hacer un metodo static para acceder a el en todo momento

Código PHP:
Ver original
  1. /**
  2.      * @tutorial Metodo que organiza un array de AbsEnumerado en un select de html
  3.      *
  4.      * @author miguel.carmona 2011/12/20
  5.      *
  6.      * @param $nombre
  7.      * @param $valorInicial
  8.      * @param $datos
  9.      * @param $id
  10.      */
  11.     public static function getComboGenerico($nombre,$valorInicial,$datos,$id=NULL,$class='cajas',$otros=NULL,$opcionDefecto=TRUE,$palabraDefecto='TODOS') {
  12.         $resultado              = '<select name="'.$nombre.'" id="'.(self::getVacio($id) ? $nombre : $id).'" class="'.$class.'" '.$otros.'>';
  13.         if($opcionDefecto) {
  14.             $resultado              .= '<option value="">'.$palabraDefecto.'</option>';
  15.         }
  16.        
  17.         foreach ($datos as $dato) {
  18.             if($dato instanceof AbsEnumerado) {
  19.                 $resultado          .= '<option value="'.$dato->getId().'" '.($valorInicial==$dato->getId() ? 'selected="selected"' : '').'>'.$dato->getDescripcion().'</option>';
  20.             }  
  21.         }
  22.         $resultado              .= '</select>';
  23.         return $resultado;
  24.     }

La clase AbsEnumerado es:

Código PHP:
Ver original
  1. abstract class AbsEnumerado {
  2.     protected $id                   = NULL;
  3.     protected $descripcion          = NULL;
  4.        
  5.     public function __construct($id,$descripcion) {
  6.         $this->id               = $id;
  7.         $this->descripcion      = $descripcion;
  8.     }
  9.    
  10.     public function getId() {
  11.         return $this->id;
  12.     }
  13.    
  14.     public function setId($id) {
  15.         $this->id       = $id;
  16.     }
  17.    
  18.     public function getDescripcion() {
  19.         return $this->descripcion;
  20.     }  
  21.    
  22.     public function setDescripcion($descripcion) {
  23.         $this->descripcion      = $descripcion;
  24.     }
  25. }

a partir de ahi se crean las clases para hacerlo mas practico

Clase enumerado:

Código PHP:
Ver original
  1. require_once ('IntEnumerado.php');
  2. require_once ('AbsEnumerado.php');
  3.  
  4. class ESexo extends AbsEnumerado implements IntEnumerado {
  5.     private static $datos;
  6.     const MASCULINO         = 'N_1';
  7.     const FEMENINO          = 'N_2';
  8.    
  9.     public static function getValores() {
  10.         self::$datos[self::MASCULINO]       = new ESexo('1','Masculino');
  11.         self::$datos[self::FEMENINO]        = new ESexo('2','Femenino');
  12.     }
  13.  
  14.     public static function getIndice($buscar) {
  15.         self::getValores();
  16.         return self::$datos[$buscar];  
  17.     }
  18.    
  19.     /**
  20.      * @tutorial Metodo busca un valor en el vector para tipo de ingreso del estudiante
  21.      *
  22.      * @author miguel.carmona
  23.      *
  24.      * @param $buscar
  25.      */
  26.     public static function getResultado($buscar) {
  27.         self::getValores();
  28.         $resultado      = new ESexo('-1','');
  29.         foreach (self::$datos as $dato) {
  30.             if($dato->getId()==$buscar) {
  31.                 $resultado  = $dato;
  32.             }
  33.         }
  34.         return $resultado;
  35.     }
  36.    
  37.     public static function getDatos() {
  38.         self::getValores();
  39.         return self::$datos;
  40.     }
  41. }

interface IntEnumerado

Código PHP:
Ver original
  1. interface IntEnumerado {
  2.     public static function getValores();
  3.     public static function getResultado($buscar);  
  4.     public static function getDatos();
  5.     public static function getIndice($buscar);
  6. }
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #4 (permalink)  
Antiguo 02/11/2012, 12:56
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 14 años, 11 meses
Puntos: 38
Respuesta: Problema con select en DB Mysql PHP

Demasiado codigo para un problema tan simple.... ahorra las energias para proyectos mas complicados
  #5 (permalink)  
Antiguo 02/11/2012, 16:00
(Desactivado)
 
Fecha de Ingreso: septiembre-2012
Ubicación: Peru Villa Maria
Mensajes: 29
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con select en DB Mysql PHP

Gracias a los dos por la respuesta, consegui una solucion que me saco del apuro,
pero no se cómo no se me ocurrio el codigo que puso rolygc.. jajaa..
Bueno yo hice un query en el que unia el codigo con la descripcion, cosa que en el select me sale las dos columnas como una, y luego le corte los caracteres separando el codigo de la descripcion, y registrando solo el codigo en su respectiva columna, no es tan buena pero sirve en circunstancias en las que estas luchando contra el tiempo.. .xDD
  #6 (permalink)  
Antiguo 02/11/2012, 17:03
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 7 meses
Puntos: 15
Respuesta: Problema con select en DB Mysql PHP

Demasiado código para una solución rápida, pero para una solución estandarizada y re-utilizable y re-cursiva es la mejor.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co

Etiquetas: columna, id+combobox, mysql+php, php+select+id
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:25.