Visualizzazione risultati 1 fino 6 di 6

Discussione: [PHP] Stampare <title>$title</title> prima di un ciclo while

  1. #1
    Guest

    Predefinito [PHP] Stampare <title>$title</title> prima di un ciclo while

    Ciao a tutti.

    Ho uno script con il quale estrapolo dal database una lista di pagine.

    Lo script più o meno è così, vi riporto i punti più importanti:
    Codice PHP:
    $post_sql = $data->query("SELECT * FROM table WHERE campo = '$campo' ");

    if(
    mysql_num_rows($post_sql) > 0){

    while(
    $post_obj = $data->estrai($post_sql)){
    $id = $post_obj->id;
    $titolo = stripslashes($post_obj->titolo);
    $title = stripslashes($post_obj->title);

    [...
    bla bla ...]


    echo
    $titolo;

    }
    }
    Fin qui tutto ok.

    Ora nella pagina devo inserire pure questo:
    Codice PHP:
    <?php echo '
    <head>
    <title>'
    .$title.'</title>
    </head>'
    ;
    ?>
    Se lo inserisco prima del while e/o if, mi stampa i tag, ma non mi stampa la variabile $title (perchè i vari campi del db vengono estrapolati all'interno del while e quindi dopo).
    Se lo inserisco prima dell'echo $titolo, lo script viene ripetuto sempre e prima di ogni $titolo.
    Ed ho questo risultato:
    Codice HTML:
    <head>
    <title>Titolo pagina</title>
    </head>
    
    Titolo
    
    <head>
    <title>Titolo pagina</title>
    </head>
    
    Titolo
    
    <head>
    <title>Titolo pagina</title>
    </head>
    
    [ecc.........]
    Come posso risolvere?
    Ultima modifica di musicanapoli : 07-05-2011 alle ore 17.21.21

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Se devi estrarre degli articoli e del primo estratto vuoi stamparne il titolo tra il relativo tag, puoi fare qualcosa di simile:
    Codice PHP:
    $p = true;

    while(
    $post_obj = $data->estrai($post_sql)){
    $id = $post_obj->id;
    $titolo = stripslashes($post_obj->titolo);
    $title = stripslashes($post_obj->title);

    if(
    $p) {
    echo
    '<title>', $title, '</title>';
    $p = false;
    }

    // il resto
    }
    p.s. l'if prima del while è inutile.

  3. #3
    Guest

    Predefinito

    Se devi estrarre degli articoli e del primo estratto vuoi stamparne il titolo tra il relativo tag
    No... il $title è il titolo della pagina, della serie "Lista degli articoli".
    E poi stampo tutti i titoli degli articoli estrapolati.

    Comunque perfetto, ho modificato ed ho ottenuto ciò che volevo. Ti ringrazio.

    Un'ultima cosa...

    Devo stampare questo:
    Codice PHP:
    echo '<li>'.$titolo.'</li>';
    e nell'html mi ritrovo questo:
    Codice HTML:
    <li>Titolo articolo</li><li>titolo bla bla</li>
    Se invece volessi stamparlo in questo modo, ovvero uno sotto l'altro?
    Codice HTML:
    <li>Titolo articolo</li>
    <li>titolo bla bla</li>
    Ultima modifica di musicanapoli : 07-05-2011 alle ore 18.58.08

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Codice PHP:
    echo '<li>'.$titolo."</li>\n";
    ... \n è un carattere speciale per andare a capo (chiamato new line)

    Ce ne sono altri di caratteri speciali, tipo il \t (tab...)...

    Ciao!
    Ultima modifica di alemoppo : 07-05-2011 alle ore 19.10.58

  5. #5
    Guest

    Predefinito

    ... \n è un carattere speciale per andare a capo (chiamato new line)
    In verità avevo già provato ad utilizzarlo, però così:
    Codice PHP:
    echo '<li>'.$titolo.'</li>\n';
    (N.B. avevo utilizzato gli apostrofi) e mi stampava:
    • Titolo pagina \n
    • Titolo pagina \n


    Effettivamente, come hai fatto notare tu, va inserito tra le virgolette e non tra gli apostrofi (anche se non ho capito perchè), infatti adesso funziona.

    Grazie anche a te.

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da musicanapoli Visualizza messaggio
    va inserito tra le virgolette e non tra gli apostrofi (anche se non ho capito perchè)
    Perchè nei doppi apici, vengono sostituiti i caratteri speciali.. un po come le variabili:

    Codice PHP:
    $c = 'ciao';
    echo
    '$c'; //stampa $c
    echo "$c"; //stampa ciao
    Ciao!

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •