Foros del Web » Programando para Internet » PHP »

ayuda!! php y simplexml: ordenar datos

Estas en el tema de ayuda!! php y simplexml: ordenar datos en el foro de PHP en Foros del Web. Hola. Estoy haciendo un guestbook que guarda los registros en un archivo xml que es manipulado (leído y escrito) por un script php usando las ...
  #1 (permalink)  
Antiguo 07/05/2007, 16:59
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 16 años, 11 meses
Puntos: 0
Pregunta ayuda!! php y simplexml: ordenar datos

Hola. Estoy haciendo un guestbook que guarda los registros en un archivo xml que es manipulado (leído y escrito) por un script php usando las funciónes simplexml. Cuando es leido, devuelve el contenido en html para ser desplegado tal cual en la página a través de una petición XMLHttpRequest. Todo funciona bien, guarda, devuelve y despliega los mensajes perfectamente. El xml es como el siguiente:

Código:
<mensajes>
	<mensaje>
		<nombre>nick/nombre--1</nombre>
		<contacto>web/mail--1</contacto>
		<cuerpo>mensaje--1</cuerpo>
	</mensaje>
	<mensaje>
		<nombre>nick/nombre--2</nombre>
		<contacto>web/mail--2</contacto>
		<cuerpo>mensaje--2</cuerpo>
	</mensaje>
	<mensaje>
		<nombre>nick/nombre--3</nombre>
		<contacto>web/mail--3</contacto>
		<cuerpo>mensaje--3</cuerpo>
	</mensaje>
</mensajes>
y el script php que lee los mensajes es:

Código:
header("Content-Type: text/html; charset=iso-8859-1");
$mensajes = simplexml_load_file('mensajes.xml');
$mensaje = $mensajes->mensaje;
if ($mensaje) {
foreach ($mensaje as $entrada) {

	if ($entrada->contacto != ''){
		echo "<div id='mensaje'><div class='datos'><a href='$entrada->contacto'>$entrada->nombre</a> dijo</div>";
		echo "<div class='entrada'>$entrada->cuerpo</div>";
		echo "</div>";
	} else {
		echo "<div id='mensaje'><div class='datos'>$entrada->nombre dijo</div>";
		echo "<div class='entrada'>$entrada->cuerpo</div>";
		echo "</div>";
		}
}
}
No soy muy avanzado en php ni en xml, y mi problema (ojalá me puedan ayudar) es que no sé cómo hacer que los mensajes nuevos aparezcan primero, ya que en el xml los nuevos registros van quedando hasta abajo, antes de </mensajes>, o que php al momento de leerlos los muestre en el orden contrario al que se encuentran, esto es, primero los nuevos (los de abajo). No sé, tal vez es algo muy simple y yo me estoy rompiendo la cabeza de más, pero bueno, para saberlo vine aquí, a que por favor me ayuden uds. grandes eruditos de la programación web jeje. Saludos.

Última edición por parandroide; 07/05/2007 a las 19:43 Razón: decidí incluir otro script
  #2 (permalink)  
Antiguo 07/05/2007, 23:13
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: ayuda!! php y simplexml: ordenar datos

he pensado en convertir el valor de
Código:
$mensajes = simplexml_load_file('mensajes.xml');
o de
Código:
$mensaje = $mensajes->mensaje;
en un array para ordenarlo usando expresiones regulares de php, pero tampoco sé cómo convertirlo. También modificando la estructura del xml con atributos o tags de id a cada mensaje, pero igual no sabría como manipularlos con php.

Ayuda por favor!

Gracias.
  #3 (permalink)  
Antiguo 08/05/2007, 01:00
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: ayuda!! php y simplexml: ordenar datos

pues donde haces tu cosulta php que te hace el relleno de los datos?
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 08/05/2007, 01:43
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: ayuda!! php y simplexml: ordenar datos

Cita:
pues donde haces tu cosulta php que te hace el relleno de los datos?
Perdona kaninox, no entiendo tu pregunta :/
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 04:20.