Formato de consulta MySQL en PHP

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )
Responder
ExpLin_11
Forista Nuevo
Forista Nuevo
Mensajes: 35
Registrado: Dom Nov 13, 2011 10:28 pm

Formato de consulta MySQL en PHP

Mensaje por ExpLin_11 »

Hola a todos.

Estoy intentando realizar una consulta a una base de datos mysql, a traves de php, en la cual necesito que me devuelva los nombres del autor y sus libros uno debajo del otro, en el siguiente formato:

Autor 1
libro 1
libro 2

Autor 2
libro 1
libro2

Autor 3
libro 1
libro 2
...
etc.

El problema es que cuando intento imprimir la tabla en ese formato, hay autores que tienen mas de un libro entonces me lo imprime de esta forma:

Autor 1
libro1

Autor 1
libro2

No se si se entiende. Yo lo que quiero es que el nombre de cada autor lo imprima una vez y todos sus libros a continuación.

Estoy utilizando estas 3 tablas:

http://pastebin.com/vFNwxMUd

y la consulta la realizo con el siguiente código:

http://pastebin.com/T4pxS5vW

Desde mi punto de vista el problema seria mas de php que de mysql, ya que por ejemplo si lo intento imprimir en formato de tabla (uno al lado del otro) lo imprime de manera correcta, y lo que necesitaría seria una manera de imprimir los datos uno debajo del otro de la forma ya mencionada.

Acepto cualquier sugerencia.

Muchas gracias.
Última edición por ExpLin_11 el Mar Nov 26, 2013 10:58 pm, editado 2 veces en total.

Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Formato de consulta MySQL en PHP

Mensaje por akodo »

Si el resultado de la tabla lo ordenas por autor, simplemente almacena el autor actual en una variable, de forma que si el autor no cambia el imprimes sólo el libro

Código: Seleccionar todo

$author = "";
while ($row = mysql_fetch_row($connection)) {
  if ($author !== $row['author']) {
    echo $row['author'];
    echo $row['book'];
    $author = $row['author'];
  } else {
    echo $row['book'];
  }
}
El truco está en almacenar el autor actual, de forma que puedes decidir si el autor de la DB es "nuevo" o no.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje