Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    evitare doppia query database

    Buongiorno a tutti.

    Solitamente, quando devo realizzare un sito, preparo una pagina index.php in cui ad ogni richiesta dell’utente (click sui link del menu) carico i giusti contenuti tramite include() . Così facendo il contenuto di ogni pagina del sito viene “caricato” sempre nella stessa pagina.

    Mi ritrovo però spesso ad affrontare un problema.

    Vorrei far sì che il titolo (<title>) della pagina e i metatag (parole chiave, descrizione ecc) variassero in funzione del contenuto della pagina. E questo sarebbe anche relativamente semplice, perché potrei impostare un titolo o una descrizione diversi allo stesso modo in cui carico i contenuti nel body.

    Ma immaginiamo di avere un sito che presenta i prodotti di un’azienda. Quando il server elabora il contenuto dell’head della la mia pagina php può sapere in che sezione del sito ci troviamo (tramite le variabili $_GET) ma non può sapere quale prodotto verrà visualizzato nel body (perché richiamato dal database solo tramite id).

    Se volessi inserire nella descrizione della pagina la descrizione stessa del prodotto dovrei interrogare due volte il database, la prima per scrivere la descrizione della pagina e la seconda volta per il body.

    Esiste una soluzione alternativa?
    fox

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sì: più d'una... nel tuo caso il problema è facilmente risolvibile generando - COME CONSIGLIO SEMPRE - l'intero blocco HTML DOPO ogni valutazione logica, quindi basta che "sposti" tutto l'output in coda. Se hai già vari "echo" o "print" basta che li sostituisci con un'assegnazione (es. print'
    ';
    diventa $output .= '
    ';
    dopo che hai inizializzato $output = ''; all'inizio dello script). In coda a tutto metterai print $output;

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Originariamente inviato da eiyen
    sì: più d'una... nel tuo caso il problema è facilmente risolvibile generando - COME CONSIGLIO SEMPRE - l'intero blocco HTML DOPO ogni valutazione logica, quindi basta che "sposti" tutto l'output in coda. Se hai già vari "echo" o "print" basta che li sostituisci con un'assegnazione (es. print'
    ';
    diventa $output .= '
    ';
    dopo che hai inizializzato $output = ''; all'inizio dello script). In coda a tutto metterai print $output;
    +1 +1 +1 +1 +1 +1

    Separare controlloer da view da model deve essere sempre fatto, e come eiyen ha detto e' sempre la soluzioni migliore.

    1- includi risorse
    2- carica dati
    3- controlla dati e popola le opportune strutture dati
    4- visualizza.

    Porcedi cosi' e andrai sempre bene.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.