PHP - Avanzar while mysql_fetch_array

   
Vista:

Avanzar while mysql_fetch_array

Publicado por Cristian (94 intervenciones) el 30/03/2015 13:53:35
Hola a todos...

Estoy haciendo un bucle con los resultados de una consulta:

1
while ($f=mysql_fetch_array($result))

Ahora bien, dentro de ese recorrido necesitaria que avanze un registro dentro de ese bucle. Paso a explicar brevemente porque:


1
2
3
4
<seccion>
<articulo> Registro 1       </articulo>
<articulo> Registro 2      </articulo>
</seccion>

Pero no se como hacerlo.
Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Avanzar while mysql_fetch_array

Publicado por eyanez (31 intervenciones) el 30/03/2015 14:37:13
Hola cristian, no entiendo muy bien el problema

$result = mysql_query($tu_sentencia_sql);
while ($f=mysql_fetch_array($result)) {
//Este ciclo se ejecuta mientra $f != null y va avanzado registro por registro no existe un next
}
mysql_free_result($result);

O el problema es generar el XML?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Avanzar while mysql_fetch_array

Publicado por Cristian (94 intervenciones) el 30/03/2015 14:52:26
Hola eyanez...
Ok tratare de explicarme mejor.

En el espacio donde ejecuta el mientras Necesito mostrar dos registros y te puse el ejemplo.
Tengo 4 registros

1
2
3
4
5
6
7
while ($f=mysql_fetch_array($result)) {
 
<seccion>
<articulo> Registro 1       </articulo>
<articulo> Registro 2      </articulo>
</seccion>
}

Necesito mostrar:

Registro 1 Registro 2
Registro 3 Registro 4


Espero haber sido mas claro.
Espero comentarios
Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Avanzar while mysql_fetch_array

Publicado por eyanez (31 intervenciones) el 30/03/2015 15:00:11
Rapidamente se me ocurre esto Un contador de columnas, te lo puse como cadenas, pero funciona con todo, podrías hacerlo con DOM para generar el XML directamente solo cambiando unas cosas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$s = '';
$c = 0;
while ($f=mysql_fetch_array($result)) {
    if($c == 0) {
       $s .= '<seccion><articulo> Registro 1       </articulo>';
       $c = 1;
    } else {
       $c = 0;
       $s .= '<articulo> Registro 2      </articulo></seccion>';
   }
}
//Aqui validas si cerraste la sección, si no es así la cierras
if($c == 1) {
  $s .= '</seccion>';
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Avanzar while mysql_fetch_array

Publicado por Cristian (94 intervenciones) el 30/03/2015 15:12:11
Si pero tengo que mostrar lo que recorre..... por mas que acumule el contador no se como mostrar el recorrido si dentro del while esta en el mismo registro.,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Avanzar while mysql_fetch_array

Publicado por eyanez (31 intervenciones) el 30/03/2015 15:35:05
Mira el contenido se va acumulando en $s, lo unico que tienes que hacerle es echo $s; al final y listo lo muestras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Avanzar while mysql_fetch_array

Publicado por Cristian (94 intervenciones) el 30/03/2015 21:02:25
Perdón pero no logro comprender...

Si hace un recorrido, y lo que muestra esta en $f, como hago para mostrar los diferentes registros...
Si tengo 10 nombres dentro del mismo recorrido y pondría $f['nombre'], no se como hacer eso.

Gracias y disculpa las molestias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Avanzar while mysql_fetch_array

Publicado por xve (5515 intervenciones) el 31/03/2015 07:09:34
Hola Cristian, seria con $f["campo1"], $f["campos2"], ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Avanzar while mysql_fetch_array

Publicado por Cristian (94 intervenciones) el 31/03/2015 13:37:18
Hola xve..

Es que no tengo que mostrar eso... tengo que mostrar el mismo campo:

1
2
3
4
<seccion>
<articulo> $f["campo1"]       </articulo>
<articulo> $f["campo1"]     </articulo>
</seccion>

O sea

1
2
3
4
<seccion>
<articulo> "Juan"      </articulo>
<articulo> "Pedro"     </articulo>
</seccion>

En el mismo bloque, necesito avanzar antes que el bucle de la vuelta para mostrar el siguiente nombre.

No se si me explique bien.

Saludos y Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Avanzar while mysql_fetch_array

Publicado por xve (5515 intervenciones) el 31/03/2015 17:09:29
Para eso estan los bucles Cristian..

Creo que tendria que ser algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$s .= '<seccion>';
 
while ($f=mysql_fetch_array($result))
{
    if($c == 0)
    {
        $s .= '<articulo>'.$f["campo1"].'</articulo>';
        $c = 1;
    } else {
        $c = 0;
        $s .= '<articulo>'.$f["campo1"].'</articulo>';
    }
}
 
$s.='</seccion>';

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Avanzar while mysql_fetch_array

Publicado por Cristian (94 intervenciones) el 31/03/2015 17:53:53
Estimado xve....

La verdad que es tienes toda la razón para eso están los bucles, lo mismo que me había puesto anteriormente eyanez. El error era de lógica, pero mio estaba como bloqueado y no lo podía ver.

Muchas gracias !!!! y tambien a eyanez !!!!!
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar