Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/09/2008, 17:32
Avatar de Marcos071
Marcos071
 
Fecha de Ingreso: enero-2006
Ubicación: Presidencia Roque Sáenz Peña - Chaco
Mensajes: 384
Antigüedad: 18 años, 4 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.