Bien, tengo un problema, así que paso a explicarlo:
Tengo dos tablas: pages y menu.
En pages me interesa la columna category y en menu title y parent.
Ahora explico: tengo una función que muestra las páginas que hay en una categoría, la variable que usa es el título de la categoría, pero he pensado mejorarlo un poco, incluyendop subcategorías. ¿Cómo funcionan? Fácil, la columna parent se corresponde con el título de la categoría.
Un ejemplo:
- Categoría Pruebas
- Página Hola Mundo
- Subcategoría Buenas
- Página Hola Buenas
- Subcategoría Día
- Página Hace un buen día
Pero tengo un problema, mejor dicho dos problemas, pero sin el código no se como explicarlos:
Código PHP:
function category($title, $value2)
{
require('Connections/SCMS.php');
mysql_select_db($database_SCMS, $SCMS);
$query_pages = "SELECT * FROM pages WHERE category = '$title' AND mode_show = '1'";
$pages = mysql_query($query_pages, $SCMS) or die(mysql_error());
$row_pages = mysql_fetch_assoc($pages);
$totalRows_pages = mysql_num_rows($pages);
require('Connections/SCMS.php');
mysql_select_db($database_SCMS, $SCMS);
$query_category = "SELECT * FROM category WHERE parent = '$title'";
$category = mysql_query($query_category, $SCMS) or die(mysql_error());
$row_category = mysql_fetch_assoc($category);
$totalRows_pcategory = mysql_num_rows($category);
$title2 = $row_category['title'];
require('Connections/SCMS.php');
mysql_select_db($database_SCMS, $SCMS);
$query_sub_pages = "SELECT * FROM pages WHERE title = '$title2'";
$sub_pages = mysql_query($query_sub_pages, $SCMS) or die(mysql_error());
$row_sub_pages = mysql_fetch_assoc($sub_pages);
$totalRows_psub_pages = mysql_num_rows($sub_pages);
switch ($value2) {
case 'title-cat':
echo $row_pages['category'];
break;
case 'title':
echo $title;
break;
case 'show':
if($totalRows_pages > 0) { // Show if recordset not empty
echo '<ul>';
do {
echo '<li><a href="?action=default&id='.$row_pages['id'].'">'.$row_pages['title'].'</a></li>';
} while ($row_pages = mysql_fetch_assoc($pages));
echo '</ul>';
} else { echo 'No hay páginas dentro de esta categoría'; }
break;
case 'category':
if($totalRows_category > 0) { // Show if recordset not empty
echo 'Esta categoría contiene las siguientes subcategorías: <br/><ul>';
do {
echo '<li><a href="?action=default&cat='.$row_category['title'].'">'.$row_category['title'].'</a></li>';
} while ($row_category = mysql_fetch_assoc($category));
echo '</ul>';
} else { }
}
mysql_free_result($pages);
mysql_free_result($category);
mysql_free_result($sub_pages);
}
Pero el mayor problema es que usando el actual sistema para repetir los datos, no puedo repetir datos dentro de una repetición, de modo que puedo mostrar las subcategorías, pero no las páginas que éstas contienen.
¿Me podéis echar una mano?
Si necesitáis algún dato más, pedidlo, espero haberme explicado...
Muchas gracias por anticipado!!