Foros del Web » Programando para Internet » PHP »

LOOP MySQL y Procedure Statement

Estas en el tema de LOOP MySQL y Procedure Statement en el foro de PHP en Foros del Web. Saludos, estoy haciendo un Procedure y el código es este: Previo a este código tengo 2 varaibles de salida varchar. Código: Código: BEGIN DECLARE cur2 ...
  #1 (permalink)  
Antiguo 22/03/2015, 07:21
Avatar de warnoise  
Fecha de Ingreso: julio-2011
Ubicación: Sevilla
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta LOOP MySQL y Procedure Statement

Saludos, estoy haciendo un Procedure y el código es este:

Previo a este código tengo 2 varaibles de salida varchar.

Código:

Código:
BEGIN
DECLARE cur2 CURSOR FOR
SELECT Nombre, mail1 FROM AP1_2_tabla_clientes_Consulta;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET @done=1;
OPEN cur2;
loop1: Loop
FETCH cur2 INTO nombre, email;
IF @done=1 THEN
Leave loop1;
End IF;
End loop loop1;
Close cur2;
END
Me surge una duda y no consigo sacarla, cuando ejecuto este procedimiento, me devuelve una unica fila, mi intención es que me devuelva todos los valores de la tabla.

Este es el código que tengo en PHP para extraer los datos de Mysql
Código PHP:
Ver original
  1. if ($resultado = $mysqli->query("CALL SPNombre(@nombre, @email)")) {
  2.         if (!($resultado = $mysqli->query("SELECT @nombre as _p_out, @email as _p2_out"))) {
  3.             echo "Falló la obtención: (" . $mysqli->errno . ") " . $mysqli->error;
  4.         }
  5.         print ('<table class="tablenav"> '.
  6.                '<thead><th><td>Nombre</td><td>Email</td><th><thead> '.
  7.                '<tbody>');
  8.         while ($fila = $resultado->fetch_assoc()) {
  9.             print ("<th><td>".$fila['_p_out']."</td><td class='reg'>".$fila['_p2_out']."</td><th>");
  10.         }
  11.     } else {
  12.         printf("<p>Error:%d (%s) %s\n", mysqli_errno($mysqli),
  13.                 mysqli_sqlsate($mysqli), mysqli_error($mysqli));
  14.     }

Un saludo.
Gracias.
  #2 (permalink)  
Antiguo 22/03/2015, 08:03
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, 4 meses
Puntos: 2658
Respuesta: LOOP MySQL y Procedure Statement

Cómo ya te dije en el otro foro, un cursor no sirve para lo que quieres hacer porque MySQL no devuelve arrays como datos de un SP. La próxima vez al menos presta atención a lo que se te dice.
Quita el cursor y deja sólo la consulta, y toma el resultado como si fuese una query común, pero llamando al SP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: loop, mysql, procedure, select, sql, statement, tabla
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 13:46.