Problema nella gestione dei contenuti in template di pagina

di il
1 risposte

Problema nella gestione dei contenuti in template di pagina

Ciao ragazzi,

Ho un problema da risolvere circa l'associazione di contenuti differenti a id differenti della stessa pagina.

Premesso che il mio template si chiama page.php e che i percorsi delle varie pagine sono page.php?id=numero io ho provato a fare una cosa del genere
	function show_content($db,$sql,$q) {
		
		
		
		$sql = $db->prepare("SELECT * FROM pagine");
		$sql->execute();
		$result = $sql->fetchAll(PDO::FETCH_ASSOC);
		$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
		
		foreach ($result as $value) {
		
			if ($value['idpagine'] == 1) {
				echo 'News sport';
			}
		
		}
	}
Ma l'effetto che ottengo è il seguente: in ogni pagina mi viene stampato News sport.

Vorrei quindi una dritta per capire in che modo e dove eseguire queste associazioni, premesso che voglio mantenere page.php come template senza creare una pagina per ogni categoria.

Grazie

1 Risposte

  • Re: Problema nella gestione dei contenuti in template di pagina

    Ciao,
    il problema è che tu estrai sempre dal db tutte le pagine, per cui quando lanci il ciclo foreach passi sempre anche per la pagina delle news, quindi questa viene sempre stampata.

    Così a naso direi che visto che passi il nome della pagina da caricare nella query string dell'url, dovresti recupererla con $_GET['id'] e eseguire una query che estragga solo la pagina richiesta, quindi:
    
    $sql = $db->prepare("SELECT * FROM pagine WHERE id = $_GET['id']");
    
    In questo modo non serve neanche il foreach, e addirittura se nel db salvi anche il nome della pagina, non serve neanche l'if, perché puoi fare qualcosa del tipo:
    
    echo $result['nome_pagina'];
    
    Comunque non ho capito a cosa servono i parametri $sql e $q della funzione, visto che il primo viene subito sovrascritto e il secondo mi pare non venga proprio usato.
Devi accedere o registrarti per scrivere nel forum
1 risposte