Foros del Web » Programando para Internet » PHP »

XML solo crea un campo de la tabla con php

Estas en el tema de XML solo crea un campo de la tabla con php en el foro de PHP en Foros del Web. Buenas Levanto datos desde mysql con php y luego creo un xml que uso en flash, el xml se crea bien el drama es que ...
  #1 (permalink)  
Antiguo 21/04/2009, 15:20
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
XML solo crea un campo de la tabla con php

Buenas

Levanto datos desde mysql con php y luego creo un xml que uso en flash, el xml se crea bien el drama es que me crea un solo campo de todos los que tengo, es decir, me graba solo un dato por mas que tenga dos o tres, como hago para que grabe todos los que tengo?, hago algo asi:

Código PHP:
$sql "SELECT * FROM galeria" ;
$result mysql_query($sql$conexion);
while (
$item mysql_fetch_assoc($result)) {; 
// Header para escribir XML
$buffer='
          <!--XML generado desde PHP-->
           <content>

            <image Thumb="'
.$item[thumb].'"">
            </image>
           </content>
          '
;
}
       
$name_file="list.xml";
       
$file=fopen($name_file,"w+");
       
fwrite ($file,$buffer);
       
fclose($file); 
no se que estare haciendo mal...

Esto lo hago para que un flash me lea el xml y de ahi levante fotos y muestre, el recomendable escribir un xml cada vez que se carga la pagina?, porque probe creando un xml desde php y agarrar el php desde flash pero no va...que estoy haciendo mal? porque me muestra solo un dato?

Última edición por SeNdEr2003; 21/04/2009 a las 15:28
  #2 (permalink)  
Antiguo 21/04/2009, 15:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: XML solo crea un campo de la tabla con php

pues... porque a pesar de estar en un while()

asignas, y re-asignas siempre la misma variable... borrando cualquier dato anterior...

lo que debes hacer es usar la concatenación .=, no mas...
Código PHP:
$foo '';

while (
/* ... */)
{
  
$foo .= 'bar';
}

echo 
$foo

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/04/2009, 15:51
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: XML solo crea un campo de la tabla con php

ok, lo hice asi, y parece andar pero igualmente me muestra una sola foto el flash, el xml ahora si me crea las lineas de acuerdo a la cantidad de fotos que tengo en la db pero el flash me muestra solo la primera, probe leer directamente desde el php en lugar de estar creando un xml cada vez que recargo la pagina, porque seria un mal empleo, pero el flash siempre me lee un dato, el primero...y el xml lo estoy creando igual que si fuese manualmente...no se bien que podria mejorar...
  #4 (permalink)  
Antiguo 21/04/2009, 15:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: XML solo crea un campo de la tabla con php

bueno, en esencia es porque esta mal formado tu XML (supongo...)

debería ser algo así, me imagino:

Código PHP:
$foo '<candy>';

while (
/* ... */)
{
  
$foo .= '<bar> ... </bar>';
}

$foo .= '</candy>'
osea, que repites siempre <content/> y debe ser uno solo, con varios <image/> dentro... cierto??

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/04/2009, 16:08
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: XML solo crea un campo de la tabla con php

trato de hacerlo pero no me lo esta agarrando, lo arme asi, <content> es lo que maneja todo y debe salir una vez...

Código PHP:
$buffer='';
$buffer='<content>
            <gallery Name="All Photos">'
;
while (
$item mysql_fetch_array($result)) {; 
// Header para escribir XML
$buffer.='
            <image Thumb="'
.$item[thumb].'">
            '
;          
}
$buffer '    </content>
        </image>'

que hago mal? al hacer echo $buffer no veo nada...si lo pongo todo junto si lo agarra pero solo una vez, la estructura esta bien..
  #6 (permalink)  
Antiguo 21/04/2009, 16:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: XML solo crea un campo de la tabla con php

En la última línea vuelves a pisar todo lo que ya escribiste en $buffer, debes concatenar ($buffer .= ...)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 21/04/2009, 16:16
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: XML solo crea un campo de la tabla con php

buenisimo, era eso nomas!!!, el tema es que me muestra texto plano dentro del php que contiene el flash, claro al hacer el echo $buffer, pasa que sino hago eso no me muestra la foto jaja, alguna manera de quitar ese texto?

sale algo asi antes de las fotos...que son las descripciones...

"Aca el nombre" / "Test Event Name"

]]> "foto_name" / "event_name"
  #8 (permalink)  
Antiguo 21/04/2009, 16:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: XML solo crea un campo de la tabla con php

¿no necesitas enviar un header() especificando que es del tipo application/xml ¿??

osea... debes usar el echo si no... ¿como pensabas imprimir el XML??

Código PHP:
header('content-type: application/xml; charset=utf-8');
echo 
$buffer

¿quitar cual texto??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 21/04/2009, 16:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: XML solo crea un campo de la tabla con php

Creo que debes cerrar todas las etiquetas que estas creando, por ejemplo:

<image Thumb="' . $item['thumb'] . '" />

Y al final:

</gallery></content>
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 21/04/2009, 16:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: XML solo crea un campo de la tabla con php

esta funcionando muy bien, solo sale el texto de las descripciones de la imagen, que en realidad yo las uso para cuando se posiciona el mouse sobre la foto, eso anda barbaro pero repite y muestra todo en texto plano....si hago lo de header me da el clasico error

Warning: Cannot modify header information - headers already sent by

usando el echo $buffer veo

"Aca el nombre" / "Test Event Name"

]]> "foto_name" / "event_name"

que eso va cuando se posiciona el mouse sobre la foto...el unico drama es que veo eso...todo lo demas esta funcionando excelente.

eso decir al hacer echo veo el flash con la foto como debe ser pero tambien me muestra en forma de texto ja, podria hacer un echo dentro de flash de lo que hay en el php? como? se podria? para no hacerlo en el php y que pase esto.
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 12:14.