Foros del Web » Programando para Internet » PHP »

xml a php duda numero 32

Estas en el tema de xml a php duda numero 32 en el foro de PHP en Foros del Web. hola, todos ven los simple que es google maps, pero aun tengo dudas... 1) de la base de datos extraigo determinado datos. 2)por algun metodo ...
  #1 (permalink)  
Antiguo 29/01/2013, 09:12
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
xml a php duda numero 32

hola, todos ven los simple que es google maps, pero aun tengo dudas...


1) de la base de datos extraigo determinado datos.
2)por algun metodo paso los datos a xml, algunos dentro del mismo nodo, colocan sus atributos, los valores,

otros xml, por cada atributo crean un subnodo..

3)algunos permiten guardar el XML, recien veo eso, por ejemplo seria que una funcion php. haga todo de extraer crear, y si devuelve 1, ahi lee el archivo por que podria pasar que quiera leer y no exista aun el XML,
entonces cuando tenga para leer un XML, acceder a los datos, LEERA UN ARCHIVO XML Y NO UN PHP... asi es como digo??


como aca que lo guarda

Código PHP:

    <?php
    $con 
mysql_connect("localhost","usuario","password");
    
//nos conectamos a nuestra base de datos
    
if (!$con)
    {
    die(
'Could not connect: ' mysql_error());
    
//verificamos que los datos sean correctos
    
}
    
// Seleccionamos la base de datos a utilizar
    
mysql_select_db("odk_prod"$con) or die ("error");
    
$result mysql_query("SELECT  campo_tabla, campo_tabla2 ... * from Nombre_tabla") or die ("error");
    
//realizamos la consulta a nuestra base de datos
    
$test = array(); //creamos una variable de tipo array
    
$row_cnt mysql_num_rows($result); //contamos el numero de filas devueltas por la consulta
    
while($row mysql_fetch_array($result)) //recorremos todos las filas de nuestra consulta para leer los resultador
    
{
    
//ahora vamos a llenar el array con la información de la base de datos, necesitamos asignar un campo dentro del array para cada uno de los campos de la tabla
    
$test [] = array ('campo_array'=>$row['campo_tabla'], 'campo_array2'=> $row['campo_tabla2']); } //ya que tenemos lleno el array vamos a utilizarlo para generar nuestro archivo XML, usando la librería DOMDocument
    //iniciamos la función DOMDocument
    
$doc = new DOMDocument(); $doc->formatOutput true//Acá creamos el primer elemento de nuestro xml llamado results, este elemento tiene un atributo llamado count, q devuelve el numero de registros que va a contener, esto lo obtenemos del numero de filas devueltas por la consulta
    
$r $doc->createElement"results" ); $r->setAttribute("count",$row_cnt); //abrimos la etiqueta results, q será la principal
    
$doc->appendChild$r );
    foreach( 
$test as $arraytest ) { //iniciamos a recorrer el array
    //creamos la etiqueta result, q dentro contendra la información del campo1 y campo2 de la base de datos
    
$b $doc->createElement"data" ); $campo1 $doc->createElement "campo1" );
    
$campo1->appendChild$doc->createTextNode$arraytest['campo_array'] ) );
    
$b->appendChild$campo1 );
    
$campo2 $doc->createElement "campo2" );
    
$campo2->appendChild$doc->createTextNode$arraytest['campo_array2'] ) ); //cerramos la etiqueta data
    
$b->appendChild$campo2 ); //cerramos la etiqueta resulsts
    
$r->appendChild$b ); } //ponemos el nombre de nuestro archivo
    
xml $doc->save("nombre_doc.xml"); //cerramos la conexión a la base de datos
    
mysql_close($con); ?>
la otra es que genera un xml, lo muestra, pero no lo llega a guardar, como XML...
cuando leo el archivo para acceder a sus datos, LEE un PHP, que muestra XML,


es asi como digo o me equivoco??
  #2 (permalink)  
Antiguo 29/01/2013, 09:36
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: xml a php duda numero 32

otra seria..

1) en el mismo index, php que muestra la pagina. hago la consulta sql , estraigo.
2)hago una funcion que este dentro de una clase, que extraiga los datos, y pase a xml, ESTE CREA UN ARCHIVO FISICO ; EN FORMATO XML,
3) de ahi, lo lee facilmente, vi varios ejemplos, que leen desde un xml, directamente, no extraen de una base de datos y si lo hacen no me funcionan....

4) calculo que deberia andar, luego me fijo, pero no se si esta bien, lo que digo,



----------------------

tambien queria agregar que veo tutoriales, donde, colocan latitud y longitud, desde la base de datos, osea no pasan a XML, ni nada. ME parecen cualquiera cuando hacen eso...

Última edición por vani18; 29/01/2013 a las 10:04
  #3 (permalink)  
Antiguo 29/01/2013, 10:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: xml a php duda numero 32

No es necesario pasarlo a un archivo, bien puedes usar saveXML para pasar el DOM a un string que puedes manipular como lo necesites, o guardarlo o hacer lo que quieras sin necesidad de pasarlo a un archivo.

Saludos.
  #4 (permalink)  
Antiguo 31/01/2013, 09:24
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: xml a php duda numero 32

Cita:
Iniciado por GatorV Ver Mensaje
No es necesario pasarlo a un archivo, bien puedes usar saveXML para pasar el DOM a un string que puedes manipular como lo necesites, o guardarlo o hacer lo que quieras sin necesidad de pasarlo a un archivo.

Saludos.
ah vos decis , que cuando "muestra " el xml, en vez de guardarlo lo mantengo en un string, el DOM... (osea todo el codigo...pero si son demasiados ...registros... no jode a esa variable,,, que guardara temporalmente)


y para leer como hace entonces?? no habre ningun archivo...?
en todo caso, usa el string, con algunos registros.. que cargue,, y va verificando...
del string, los nodos, etc
  #5 (permalink)  
Antiguo 31/01/2013, 10:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: xml a php duda numero 32

Así es, si lo tienes en un string puedes leerlo igual, aunque pues no entiendo para que quieres hacer un PHP que genere un XML en un string y luego el mismo PHP parsee el XML y lo descomponga de regreso.

Es trabajo doble, mejor baja todo a variables locales (arrays) y procesalos directamente y te evitas el paso de estar parseando XMLs que es bastante complicado.
  #6 (permalink)  
Antiguo 31/01/2013, 22:27
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: xml a php duda numero 32

a ver....
yo traigo los valores de la base de datos.
de ahi, puedo....

1) ponerlos en el codigo javascript , directamente, masomenos asi


var latitud: <? echo row[$i]['latitud']?>
queda feo, de esa manera,, creo...

2) lo que hice yo, fue extraer de una base de datos.
de ahi hacer un XML, , un archivo XML.. con php.
ahi estaran todos,
despues por un valor devuelto, le aviso, que se creo el archivo ,
y de ahi lo lee, (el javascript-google-maps, lee un XML)
y bueno de ahi... salen los marcadores etc...

.............

pero como vos decis, que cosa, me ahorra??
habia visto el metodo de NO crear un archivo fisico.. XML., PERO NO ME SALIA;
YA NO SABIA QUE HACER, NO ME QUEDABA OTRA QUE HACERLO COMO LO HICE

el metodo que me decis es, como que cuando hago el XML (temporal )lo guardo en un string, una variable,,, php? o jvas? asi?

$string=saveXML ()

despues el javascript-google-maps lee esa variable?? $string...

creo que no...
  #7 (permalink)  
Antiguo 01/02/2013, 10:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: xml a php duda numero 32

Puedes hacer un dump de la variable directamente y generar el XML al vuelo, es lo más adecuado en ese caso, no tiene mucha ciencia:
Código PHP:
Ver original
  1. // Creas tu DOM completo, etc.
  2.  
  3. // Lo asignas a una variable
  4. $xml = $dom->saveXML();
  5.  
  6. // Lo mandas como respuesta
  7. header('Content-type: text/xml');
  8. echo $xml; die();

Luego en tu pagina HTML, desde Javascript apuntas al archivo PHP que genera ese XML, no importa que el archivo termine en PHP, al final la respuesta va a ser un XML, y eso ya lo puedes procesar en Javascript.

Saludos.
  #8 (permalink)  
Antiguo 02/02/2013, 23:23
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: xml a php duda numero 32

Cita:
Iniciado por GatorV Ver Mensaje
Puedes hacer un dump de la variable directamente y generar el XML al vuelo, es lo más adecuado en ese caso, no tiene mucha ciencia:
Código PHP:
Ver original
  1. // Creas tu DOM completo, etc.
  2.  
  3. // Lo asignas a una variable
  4. $xml = $dom->saveXML();
  5.  
  6. // Lo mandas como respuesta
  7. header('Content-type: text/xml');
  8. echo $xml; die();

Luego en tu pagina HTML, desde Javascript apuntas al archivo PHP que genera ese XML, no importa que el archivo termine en PHP, al final la respuesta va a ser un XML, y eso ya lo puedes procesar en Javascript.

Saludos.


hola bueno ese era el problema q tenia... ahora me queda mas claro...

pero , a ver...

vos haces el XML, con la clase DOMdocument. no?
de php, no usaste otra clase....
igual , con otra distinta, creo que debe ser similar el proceso..


ASI COMO PARA HACER UN XML Y LEER, HAY VARIAS FORMAS, ESOS EJEMPLOS ESTABAN EN LA PAGINAS COMO EJEMPLOS DE LA API DE GOOGLE MAPS, PERO NO ME ANDABAN...

DE ESTA MANERA era para leer un XML.

Código PHP:
function downloadUrl(url,callback) {
 var 
request window.ActiveXObject ?
     new 
ActiveXObject('Microsoft.XMLHTTP') :
     new 
XMLHttpRequest
ahora no se por que esta en ingles la pagina,,,, menos la entiendo... (estaba en español,)

https://developers.google.com/maps/a...l=es#outputxml

bueno seguire viendo como sigue , esto.
  #9 (permalink)  
Antiguo 02/02/2013, 23:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: xml a php duda numero 32

Eso es parte del API de Google Maps, es algo totalmente diferente, tú lo que debes hacer con PHP es generar el XML adecuado, ya como lo proceses con lo que quieras (en este caso Google Maps) ya lo debes de ver en el foro de Javascript, ya que es un tema independiente de PHP.

Saludos.

Etiquetas: mysql, numero, registro, select, tabla, xml
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:03.