PHP - Ayuda con un código php de menú dinámico

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un código php de menú dinámico

Publicado por Daniel (9 intervenciones) el 05/08/2021 06:29:42
Hola, necesito si alguien me puede ayudar, estoy aprendiendo a programar, y estoy tratando de hacer un menú dinámico, donde yo cargue las categorías y me vayan apareciendo en el menú. Eso ya lo logre y este es el código para el menú:

1
2
3
4
5
6
7
8
9
10
11
12
13
<nav>
	<ul>
	<li><a href="index.php" id="enlaces">Inicio</a></li>
	<?php
	$dataSet = obtenerMenu();
	foreach ($dataSet as $i => $row){
	?>
		<li><a href="vercategoria.php?id=<?php echo $row["categoria_id"];?>" id="enlaces"><?php echo $row["categoria"];?></a></li>
	<?php
	}
	?>
	</ul>
</nav>

Con este función hacemos la consulta a la base de datos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function obtenerMenu()
	{
		$mensaje='';
		$dataSet=array();
		$nroFilasRetornadas=0;
		$miQuery = new Conexion();
		if($miQuery->conectar())
		{
			$miQuery->query = " SELECT * FROM categoria WHERE estatus = 1 ORDER BY categoria_id ASC LIMIT 0, 7";
			if($miQuery->executeQuery()){if($miQuery->nroFilasRetornadas>0){$dataSet=$miQuery->dataSet; $nroFilasRetornadas=$miQuery->nroFilasRetornadas;}}
			$miQuery->cerrar_conexion();
		}else{$mensaje=$miQuery->error;}
 
		return $dataSet;
	}

Ahora el problema que tengo es que como hago para que cuando seleccione en el menú la categoría solo me muestre las noticias de esa categoría seleccionada. Tengo el siguiente código pero me nuestra todas las categoría

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
	    $dataSet = obtenerNoticias();
	    $i = 0;
	    foreach ($dataSet as $i => $row){
      	$r = $i % 3;
        echo '<td valign="top">';
                                echo '<p  style="font-size: 16px">'.$row['categoria'].'</p>';
				echo '<img src="img_noticias/'.$row['foto'].'">';
				echo '<a href=vernoticias.php?id='.$row['noticias_id'].'><h1>'.$row['titulo'].'</h1></a>';
				echo '<p  style="font-size: 16px">'.$row['copete'].'</p>';
				echo '</td>';
				if ($i > 0 && $r == 2) {
		        echo '</tr>';
		        echo '<tr>';
        }
        $i++;
    	}
?>

Y Con esta función hacemos la consulta a la base de datos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function obtenerNoticias()
	{
		$mensaje='';
		$dataSet=array();
		$nroFilasRetornadas=0;
		$miQuery = new Conexion();
		if($miQuery->conectar())
		{
			$miQuery->query = "SELECT n.noticias_id, n.titulo, n.copete, n.foto, c.categoria FROM noticias n INNER JOIN categoria c ON n.categoria = c.idcat WHERE c.idcat = c.idcat ORDER BY n.noticias_id DESC LIMIT 50";
			if($miQuery->executeQuery()){if($miQuery->nroFilasRetornadas>0){$dataSet=$miQuery->dataSet; $nroFilasRetornadas=$miQuery->nroFilasRetornadas;}}
			$miQuery->cerrar_conexion();
		}else{$mensaje=$miQuery->error;}
 
		return $dataSet;
	}

Pero como dije anteriormente me muestra todas las categoría no la seleccionada. Desde ya muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 9
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un código php de menú dinámico

Publicado por Daniel (9 intervenciones) el 11/08/2021 03:49:15
Ya encontré el error de porque no me mostraba los resultados, el error estaba en la consulta SQL que quedaría así.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function obtenerNoticias()
	{
		$mensaje='';
		$dataSet=array();
		$nroFilasRetornadas=0;
		$miQuery = new Conexion();
		if($miQuery->conectar())
		{
			$miQuery->query = "SELECT n.noticias_id, n.titulo, n.copete, n.foto, c.categoria FROM noticias n INNER JOIN categoria c ON n.categoria = c.idcat WHERE c.idcat = ".$_GET['id']." ORDER BY n.noticias_id DESC LIMIT 50";
			if($miQuery->executeQuery()){if($miQuery->nroFilasRetornadas>0){$dataSet=$miQuery->dataSet; $nroFilasRetornadas=$miQuery->nroFilasRetornadas;}}
			$miQuery->cerrar_conexion();
		}else{$mensaje=$miQuery->error;}
 
		return $dataSet;
	}

Gracias Jorge de este mismo foro, que me ayudo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar