Quiero crear un documento que sea un compendio de enlaces extraídos de una base de datos MySQL, para poder gestionarlos desde el navegador mediante PHP. Quiero que se muestren de la siguiente manera:
Categoría A
enlace a
enlace b
enlace c
Categoría B
enlace d
enlace e
enlace f
Podría meter todos los enlaces en una misma tabla, añadirles un campo adicional para especificar a qué categoría corresponden, y crear una consulta para cada categoría. El problema es que en ese caso debería especificar de antemano cuáles serán las categorías que crearé, y escribir tantas consultas como categorías haya. Si más adelante decido añadir una nueva categoría, tendré que modificar la consulta.
En vez de eso, quiero poder añadir nuevas categorías en la base de datos mediante PHP, sin tener que modificar las consultas para añadir una nueva categoría.
Así que mi base de datos (de momento) constará de dos tablas: una de categorías, y otra de enlaces (más adelante quiero meter categorías y subcategorías, pero de momento no quiero complicarme tanto, vayamos paso a paso).
La tabla "categoria" tendrá dos campos: "ref_categoria" y "nombre".
La tabla "enlaces" tendrá cuatro campos: "ref_enlace", "ref_categoria" (que especificará a qué categoría corresponde cada enlace), "nombre", y "url".
Una vez montada la tabla y añadidos algunos datos de prueba, me pongo manos a la obra. Vamos a lo fácil: listar los distintos enlaces. Para simplificar sólo mostraré el dato "ref_enlace" (me salto la parte de conexión):
Código PHP:
<?
$consulta = "SELECT * FROM enlaces ORDER BY ref_enlace ASC";
$resultado = mysql_query($consulta);
while ($rows = mysql_fetch_array($resultado))
echo "<li><b>Enlace $rows[ref_enlace]</b></li>";
$i++;
?>
He estado buscando, y creo que se puede hacer mediante INNER JOIN, pero no estoy seguro. He intentado sustituir la consulta anterior por ésta:
Código PHP:
$consulta = "SELECT * FROM enlaces INNER JOIN categoria ON enlaces.ref_categoria = categoria.ref_categoria ORDER BY categoria.ref_categoria_ ASC, enlaces.ref_enlace ASC";
Cita:
¿Alguien me podría orientar un poco? Estoy bastante perdido. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/html/prueba.php on line 15