Meter en un array la salida de una consulta de varios documentos con Foreach.

Iniciado por frauzamb, 13 Mayo 2014, 15:50 PM

0 Miembros y 1 Visitante están viendo este tema.

frauzamb

Hola, tengo una duda con PHP, muchas gracias con antelación.

Tengo varios documentos XML con datos de CDs de música, en los cuales necesito sacar el mismo dato de cada uno (Nombres de las canciones). El código me funciona para hacer esto, pero ahora necesito que cada 10 canciónes me lo meta en un <div>(para css) diferente. Lo que me pasa es que el foreach me hace un array por cada fichero que lee(un array por cd) y no uno de todos(uno con todas las canciones de todos los cds) y así poder contar el número de canciones y separarlas cada 10. ¿Alguna sugerencía?
Espero haberme explicado bien :S

Código (php) [Seleccionar]
//Listado de ficheros
foreach(glob($url .'*.xml') as $archives) {

//Abrimos fichero xml
$cdarchive=simplexml_load_file($archives);

       //Mostramos nombre de las canciones
foreach ($cdarchive->songs->song as $cdsong){
echo $count;
echo "<div class='slide><div class'left>";
echo $cdsong->title." ";
if (isset($cdsong->length))
echo "(".$cdsong->length.")";
if (isset($cdsong->feat))
echo "[feat.".$cdsong->feat."]";
echo "</br>";
echo "</div></div>";
}


Mod: Temas PHP en subforo de PHP. Obligatorio utilziar etiquetas GeSHi.

DanB

Amigo intenta para la proxima poner el codigo entre las etiquetas adecuadas para que se vea correctamente. Te dejo un codigo que hice a modo de ejemplo.
Código (php) [Seleccionar]

/*desde una url*/
$context  = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml);
$sql="INSERT INTO Noticias (Titulo, link, Contenido) VALUES (:titulo , :link , :contenido)";
$consulta = $conexion->prepare($sql);
/* Establezco los parametros */
$consulta->bindParam(':titulo',$titulo);
$consulta->bindParam(':link',$link);
$consulta->bindParam(':contenido',$contenido);
foreach($xml->item as $noticia){
/* Para cada elemento item del XML extraigo los elementos hijos, luego saco la informacion a traves de los nodos del documento XML y aplico addslashes para sanizar el texto para evitar \' y \" ya que la consulta SQL fallaria */
$titulo = addslashes($noticia->title);
$link = addslashes($noticia->link);
$contenido = addslashes($noticia->description);
/* Ejecuto la consulta */
$consulta->execute();
echo "Insertada NOTICIA a la BD <br/>";
}


Si me publicas la estructura DOM del archivo XML puedo intentar modificarlo a tu ejemplo