Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problemas al consultar DB para llenar un <select><option>

Estas en el tema de Problemas al consultar DB para llenar un <select><option> en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, ahora me surge este problema, que no trae nada de la consulta que hago con php a la base de datos. Solo me muestra ...
  #1 (permalink)  
Antiguo 29/09/2008, 17:32
Avatar de Marcos071  
Fecha de Ingreso: enero-2006
Ubicación: Presidencia Roque Sáenz Peña - Chaco
Mensajes: 384
Antigüedad: 18 años, 3 meses
Puntos: 5
Problemas al consultar DB para llenar un <select><option>

Hola, ahora me surge este problema, que no trae nada de la consulta que hago con php a la base de datos. Solo me muestra un <select> con un <option> vacio, nada mas eso, siendo que en mi base de datos, ya he cargado en la tabla categoria, unos cuantos nombres.

Cuando coloco luego de hacer la consulta $num_result = mysql_num_rows($rs); da este warning:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in...

que creo que sera porque no se ha realizado la consulta y $rs esta vacio.

Tambien compruebo si la consulta puede ser de esta manera:

$rs = mysql_db_query("SELECT nombre FROM categoria");

sin usar el metodo getCon();


Aqui un screenshot de las ubicaciones de los paquetes:



archivo BaseDatos.php

Código PHP:

<?php
class BaseDatos{
    
        private 
$con;
        private 
$db;
    
    function 
Conecta(){
        
        try{
            if(@
$this->con mysql_connect("localhost","root","pass")){
                echo 
"BD Conectada.<br>";
            }
            
        }catch(
Exception $e){
            echo 
"Error en conexion a la base de datos. \nError:".$e->getMessage();
        }

        try{
            if(@
$this->db mysql_select_db("elpuma")){
                echo 
"BD Seleccionada.<br>";
            }
        }catch(
Exception $e){
            echo 
"Error en la seleccion de la base de datos. \nError:".$e->getMessage();
        }
        
    }
    function 
getCon(){ return $this->con;}
    function 
getBd(){ return $this->db;}

       function 
ConsultaCategoriaPrincipal(){
        
$bd = new BaseDatos();
        
$bd->Conecta();
        
        
$rs mysql_db_query($bd->getCon(), "SELECT nombre FROM categoria");
        
        
//$num_result = mysql_num_rows($rs);
        //echo $num_result;
        
echo "<select name='categoria'>";
        
        while(
$row mysql_fetch_array($rs)){
            echo 
"<option name='".$row["nombre"].">".$row["nombre"]."</option>";
        }
        echo 
"</select>";
        
        if(
mysql_close($bd->con)){
            echo 
"DB Cerrada. <br>";
        }
      
    }
}
?>
archivo categoria_principal.php

Código PHP:

<?php
include ('../controlador/BaseDatos.php');
$bd = new BaseDatos();
$bd->ConsultaCategoriaPrincipal();
?>
archivo categorias.php

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Registro de Usuario</title>
</head>
<body>
<h2>Categoria Principal</h2>

<?php include ('../modelo/categoria_principal.php'); ?>
</body>
</html>

Gracias amigos.

Última edición por Marcos071; 29/09/2008 a las 18:36 Razón: Error semantico.
  #2 (permalink)  
Antiguo 29/09/2008, 18:36
Avatar de Marcos071  
Fecha de Ingreso: enero-2006
Ubicación: Presidencia Roque Sáenz Peña - Chaco
Mensajes: 384
Antigüedad: 18 años, 3 meses
Puntos: 5
Respuesta: Problemas al consultar DB para llenar un <select><option>

Ahora lo hago de esta manera, y me funciona bien, carga en los <select> <option> los datos de la base de datos, pero comenzando nuevamente desde 0. me quedo solo esto. pero no es lo que quiero, xq se junta todo.

archivo BaseDatos.php

Código PHP:

<?php
class BaseDatos{
    
    function 
Conecta(){
        
$bdmysql_connect('localhost','root','pass');
        
$bdmysql_select_db('elpuma');
        
$rsmysql_query('select nombre from categoria');
        
        echo 
"<select>";
        while(
$r mysql_fetch_array($rs)){
            echo 
"<option>".$r[nombre]."</option>";
        }
        echo 
"</select>";
    }
    
}
?>
PD: todavia no logro encontrar mi error.
  #3 (permalink)  
Antiguo 29/09/2008, 18:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problemas al consultar DB para llenar un <select><option>

Hola Marcos071,

Tu problema es que no estas separando las capas, y estas tratando de programar orientado a objetos usando una programación funcional.

Más que ayudarte a resolver específicamente tu problema creo lo mejor es que tomes un curso de Programación Orientado a Objetos para que aprendas como es que debes de estructurar un sistema así.

Saludos.
  #4 (permalink)  
Antiguo 29/09/2008, 19:52
Avatar de Marcos071  
Fecha de Ingreso: enero-2006
Ubicación: Presidencia Roque Sáenz Peña - Chaco
Mensajes: 384
Antigüedad: 18 años, 3 meses
Puntos: 5
Respuesta: Problemas al consultar DB para llenar un <select><option>

Sabes de algun curso o libro en especial?
  #5 (permalink)  
Antiguo 29/09/2008, 20:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problemas al consultar DB para llenar un <select><option>

Libros no conozco uno en especifico, y en cuanto a cursos cualquiera de Programación Orientada a Objetos te dejaría las bases para poder trabajar correctamente.

Saludos.
  #6 (permalink)  
Antiguo 29/09/2008, 21:26
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problemas al consultar DB para llenar un <select><option>

Estimado Marcos:

¿Estás intentando generar código POO a base de prueba y error, sin basarte en nada teórico?

Sugerencia, realiza una clase mucho más sencilla, no tiene sentido evita la salida de errores con "@" si aún ni sabes si funciona. Todo lo contrario, debes prestar atención a todos los errores, más en esta etapa.

Y menos de hablar de un combo, primero trabaja en la base de datos, cuando veas que devuelve algo, recién habrás resuelto el primer problema.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 07:14.