Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problemas con un procedimiento almacenado

Estas en el tema de problemas con un procedimiento almacenado en el foro de Mysql en Foros del Web. Holas gente, tengo una duda muy dudosa y es sobre un procedimiento almacenado, el detalle es este: Este es mi procedimiento alamcenado Código: DELIMITER $$ ...
  #1 (permalink)  
Antiguo 08/04/2010, 08:11
 
Fecha de Ingreso: febrero-2009
Ubicación: Cusco - Peru
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
problemas con un procedimiento almacenado

Holas gente, tengo una duda muy dudosa y es sobre un procedimiento almacenado,
el detalle es este:

Este es mi procedimiento alamcenado

Código:
DELIMITER $$

CREATE
    PROCEDURE `prueba`(IN fechadada DATE)

    BEGIN
	SELECT nombre, direccion, telefono FROM agente_venta FROM fecharegistro>fechadada;
	
    END$$

DELIMITER ;
Con esto muestro la lista de mis agentes de venta desde una fecha de inscripcion.

Aqui mi primera duda: vi por todo lado que en los SP solo ponian un OUT si el valor de devolucion es solo un dato resultante, si mi caso es este de devolver mas de 2 datos, mejor dicho toda una lista de resultados, como retorno estos resultados???

Luego desde php llamo a este SP pero no me devulelve nada, es como si estubiera vacio, este es el error que me muestra:
Código:
Warning: mysqli_error() expects parameter 1 to be mysqli, null given in /home/host/public_html/host/procedures.php on line X.
.
siendo este mi codigo en php:

Código PHP:
$hostname "localhost";
$database "BDbase";
$username "julito";
$password "julito2";

$mysqli = new mysqli($hostname$username$password$database);

if (
mysqli_connect_errno()) {
   
printf("Error en Coneccion: %s\n"mysqli_connect_error());
   exit();
}

$sql "CALL prueba('2010-01-15')";
$resultado $mysqli->query($sql)// ACA ES DONDE DA ERROR 
Pero esto solo en mi host externo, es decir en mi servidor que contrate.

Ya que si lo ejecuto en mi host local si me devuelven los valores de la tabla resultante.

Alguna idea de porque pasa esto???

Es urgente porfas.
  #2 (permalink)  
Antiguo 08/04/2010, 08:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: problemas con un procedimiento almacenado

Estás confundiendo las funciones almacenadas, que devuelven un sólo dato, con los procedimientos almacenados, que pueden o no retornar datos.
En el primer caso, no se indica si el parámetro es de entrada, porque todo parámetro de una función es sólo de entrada, y el valor devuelto se define en el prototipo (funcionX(valor tipoDeDatoEntrante, ...) RETURNS tipoDeDato).
En el segundo caso, debe indicarse si el parámetro es de entrada (IN),, salida (OUT) o entrada-salida (INOUT).
¿Cuántos parámetros de salida puede tener? Simple: tantos como tenga de entrada, si lo quieres.
Pero además, los SP pueden devolver una tabla resultado que contenga una o más columnas si la última sentencia del script es un SELECT, y en ese caso obtendrás valores en dos niveles: en los parámetros de salida y en el resultado del query.
¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/04/2010, 08:42
 
Fecha de Ingreso: febrero-2009
Ubicación: Cusco - Peru
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: problemas con un procedimiento almacenado

maso, en todo caso para el ejemplo que te tengo cual seria o deberia de ser la forma correcta, ya q lo unico que dese es saber lista de los agentes desde una fecha dada hasta la fecha actual.

Cuales son mis errores???

Porfas una ayuda.
  #4 (permalink)  
Antiguo 12/04/2010, 12:47
 
Fecha de Ingreso: septiembre-2008
Mensajes: 20
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: problemas con un procedimiento almacenado

SELECT nombre, direccion, telefono FROM agente_venta FROM fecharegistro>fechadada;

tu sintaxis esta mal por eso te marca ese error quedaria de esta manera
SELECT nombre, direccion, telefono FROM agente_venta WHERE fecharegistro=fechadada;


y ya en php solo pones el nombre de la posicion.

Etiquetas: procedimiento, almacenar
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 19:52.