Comunidad de diseño web y desarrollo en internet online

Error inesperado de respuesta de un procedure de mysql y php

Citar            
MensajeEscrito el 25 Jul 2012 02:55 am
Hola amigos de critalab, soy nuevo en este foro. Bueno al grano, yo estoy trabajando en un miniproyecto con php5 y mysql 5 workbench. El error que me ocurre es que e echo un procedure en mysql , que es el sgte:

Código :

CREATE DEFINER=`root`@`localhost` PROCEDURE `spConsultarUsuarioCompletoOrdenado`(in param varchar(20))
begin
    set @variable=concat("select * from usuario order by ",param);
    prepare smt from @variable;
    EXECUTE smt;
end

Mi duda es que al ejecutar ese procedimiento almacenado como: (sabiendo que idusuario es una columna de mi tabla usuario.)

Código :

call spConsultarUsuarioCompletoOrdenado('idusuario')


eso me da como resultado una serie de registros ya ingresados anteriormente ordenados por la columna idusuario en el mysql workbench, pero cuando lo ejecuto en mi codigo de php, al mostrara la pagina no me muestra los registros sino un simple numero "0".

Por si las moscas dejo el fragmento de mi codigo php (clase conexion.php) con la que invoco dicha funcion que llama el procedure:

Código :

    function conectarBD(){
             $this->conexion=  mysql_connect('localhost','root','frog') or die('Error en la conexion al servidor');
             mysql_selectdb('bdfrog', $this->conexion) or die('Error al encontrar la Base de Datos');
             }
             function EjecutarProcedure($sql){
            $this->resultado=mysql_query($sql) or die('Error en Base de Datos : No se ejecuto el Store Procedure');
            }


y de esta forma la invoco en otra pagina que es la que me mopstrara la web:

Código :

$objconexion=new conexion();
         $objconexion->conectarBD();
         $objconexion->EjecutarProcedure1("call spConsultarUsuarioCompletoOrdenado('idusuario')");


claro esta que despues de este codigo anterior mostrado hago mas funciones para constriur unas celdas donde muestro los resultados. pero como ya mencione esto me muestra "0", pero si cambio por esto

Código :

$objconexion=new conexion();
          $objconexion->conectarBD();
          $objconexion->EjecutarProcedure1("select * from usuario");


si me construye la celda con todos los resultados.


Gracias de antemano por las respuestas.

Por LuisValeriano

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Jul 2012 01:26 pm
pues mira esta parte

Código PHP :

function EjecutarProcedure($sql){
            $this->resultado=mysql_query($sql) or die('Error en Base de Datos : No se ejecuto el Store Procedure');
            }

mira mysql_query solo retorna un resource en caso de extio y false en caso de error, por lo cual en ningun momento te retorna un array u otro parecido , para eso hay las funciones
mysql_fetch_assoc , y las otras funciones. mysql_fetch_*

http://es.php.net/mysql_query

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.