Foros del Web » Programando para Internet » PHP »

Despliegue de datos de un cursor

Estas en el tema de Despliegue de datos de un cursor en el foro de PHP en Foros del Web. http://desaweb.forosdelweb.com/showthread.php?t=272527 Tenia un problema de despliegue de cursores. Ok, solucionado. Ahora la parte PHP Se supone que con PHP mostramos el resultado de 1 query. ...
  #1 (permalink)  
Antiguo 02/03/2005, 16:41
 
Fecha de Ingreso: mayo-2004
Ubicación: Santiago, Chile
Mensajes: 191
Antigüedad: 13 años, 7 meses
Puntos: 1
Despliegue de datos de un cursor

http://desaweb.forosdelweb.com/showthread.php?t=272527

Tenia un problema de despliegue de cursores. Ok, solucionado.
Ahora la parte PHP

Se supone que con PHP mostramos el resultado de 1 query. Pero que pasa con los cursores? cuando se hace 1 SP y se muestran varias filas para un mismo query?

Algun forma de agilizar el despliegue de datos? (claro... no voy a poner 50 querys para cada fila)
  #2 (permalink)  
Antiguo 03/03/2005, 07:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Revisa las funciones xxx_fetch_xxx() .. no sé que usas para acceder a MS SQL Server desde PHP .. (ODBC? .. directo por las funciones de PHP (extensión) mssql_xxx()?.

Por lo general .. en PHP el cursor lo mueven internamente el uso de funciones tipo "fetch" .. así que se basan en usar bucles tipo:

Código PHP:
$sql="blablabal";
$resultado=xxxx_query();
while (
$row=xxxxx_fetch_xxxx($resultado)){
echo 
$row['nombre_campo']; // si haces un array ...
// o
echo $row->nombre_campo// si haces un objeto ..

A cada llamada de dicha función .. se entrega una "fila" de tu "resultado" (consulta ejecutada o "record-set" obtenido) y se mueve el puntero interno una posición hacia adelante .. así hasta que llega al final .. devolviendo un "FALSE" dicha función .. (por eso viene bien usar un while() )

Un saludo,
  #3 (permalink)  
Antiguo 03/03/2005, 08:42
 
Fecha de Ingreso: mayo-2004
Ubicación: Santiago, Chile
Mensajes: 191
Antigüedad: 13 años, 7 meses
Puntos: 1
Lo hago asi:

Código PHP:
$infoEN mssql_query ("pruebas");  // Ejecuto el SP
while ($registro mssql_fetch_row($infoEN))
{
echo 
"<tr><td align=left><font size=3 face=Times New Roman>".$registro[0]."</td>
<td align=left><font size=3 face=Times New Roman>"
.$registro[1]."</td>
<td align=right><font size=3 face=Times New Roman>"
.$registro[5]."</td>
<td align=right><font size=3 face=Times New Roman>"
.$registro[2]."</td>";

Pero me arroja solo 1 resultado. El SP que tengo es con "FETCH NEXT" y es un cursor y me va arrojando los datos "de 1 en 1" osea, es como una tabla pero dividida por cada fila, por lo que quiero juntar esas filas. Se entiende?
  #4 (permalink)  
Antiguo 03/03/2005, 08:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No sé que es "SP" cuando te refires ... ¿es un "Store Procedure", Procedimiendo almacenado? .. por qué si es eso, no se ejecutan con mssql_query() sino con mssql_execute()

www.php.net/mssql_execute

Y ahí mismo dice que uses: msssql_next_result() si tu "SP" devuelve más d e un resultado ..

http://www.php.net/manual/en/functio...ext-result.php

Repasa los comentarios de los usuarios de dichas funciones y sus ejemplos (yo no uso MS SQL Server por mi parte ..)

Un saludo,

Última edición por Cluster; 03/03/2005 a las 09:01
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 15:30.