Visualizzazione risultati 1 fino 7 di 7

Discussione: [php] Cambio pagina, ma dove sbaglio?

  1. #1
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito [php] Cambio pagina, ma dove sbaglio?

    Salve ragazzi, ho modificato uno script in modo che ogni 10 news cambi pagina automaticamente, ma i risoltati sono solo questi:

    http://silverseraph.altervista.org/News.php

    Come potrete vedere sia in pagina 1 che in pagina 2 le news sono sempre le stesse e me ne visualizza più di 10 per pagina.

    Il codice utlizzato è il seguente:
    Codice PHP:
    <?php


    $op_db
    =file("db_news.txt");

    $pag=$_GET[pag];

    if(
    $pag==0){
    $pag=1;
    }


    $t_vis=10;


    $width_loc = "30%";
    $width_prezzo = "10%";
    $width_title = "60%";
    $width_tabella = "600";
    $classe= "class=\"write\" ";


    $f_pag=$t_vis*$pag;
    $i_pag=$f_pag-$t_vis;


    $cx=1;

    $op_db=array_reverse($op_db);
    $cnt=count($op_db);



    foreach(
    $op_db as $val){
    list(
    $id,$nome,$data,$testo,$titolo,$mail,$foto)=explode("|",$val);
    echo
    "<tr><td width=\"70px\" class=\"write\">$data</td><td width=\"530px\" class=\"write\"><a class=\"white\" href=\"vedi_news.php?id=$id\">$titolo</a></td></tr>\n";
    }



    echo
    "</td></tr><tr><td colspan=\"2\"><table width=\"$width_tabella\" style=\"padding-top:2px;\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"$width_tabella\"><tr><td width=\"600\" ><div class=\"write\" align=\"right\">";

    $pgx=$cnt/$t_vis;
    settype($pgx,"int");
    $pgx+=1;

    for(
    $x=1;$x<=$pgx;$x++){
    if(
    $x==$pag){
    $xw="<b class=\"write\">$x</b>";
    }else{
    $xw=$x;
    }
    echo
    "[<a class=\"white\" href=\"News.php?pag=$x\">$xw</a>]&nbsp;&nbsp;";
    }
    echo
    "</div></td></tr></table>";


    ?>

  2. #2
    Guest

    Predefinito

    correggi così:
    Codice PHP:
    <?php


    $op_db
    =file("db_news.txt");

    $pag=$_GET['pag'];

    if(
    $pag==0){
    $pag.=1;
    }


    $t_vis=10;


    $width_loc = "30%";
    $width_prezzo = "10%";
    $width_title = "60%";
    $width_tabella = "600";
    $classe= "class=\"write\" ";


    $f_pag=$t_vis*$pag;
    $i_pag=$f_pag-$t_vis;


    $cx=1;

    $op_db=array_reverse($op_db);
    $cnt=count($op_db);



    foreach(
    $op_db as $val){
    list(
    $id,$nome,$data,$testo,$titolo,$mail,$foto)=explode("|",$val);
    echo
    "<tr><td width=\"70px\" class=\"write\">$data</td><td width=\"530px\" class=\"write\"><a class=\"white\" href=\"vedi_news.php?id=$id\">$titolo</a></td></tr>\n";
    }



    echo
    "</td></tr><tr><td colspan=\"2\"><table width=\"$width_tabella\" style=\"padding-top:2px;\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"$width_tabella\"><tr><td width=\"600\" ><div class=\"write\" align=\"right\">";

    $pgx=$cnt/$t_vis;
    settype($pgx,"int");
    $pgx+=1;

    for(
    $x=1;$x<=$pgx;$x++){
    if(
    $x==$pag){
    $xw="<b class=\"write\">$x</b>";
    }else{
    $xw=$x;
    }
    echo
    "[<a class=\"white\" href=\"News.php?pag=$x\">$xw</a>]&nbsp;&nbsp;";
    }
    echo
    "</div></td></tr></table>";


    ?>
    c'erano due errorini di sintassi

  3. #3
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Niente da fare, mi da sempre lo stesso errore

  4. #4
    Guest

    Predefinito

    di preciso dove nello script hai specificato il cambio pagina?

  5. #5
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Codice PHP:
    echo "</td></tr><tr><td colspan=\"2\"><table width=\"$width_tabella\" style=\"padding-top:2px;\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"$width_tabella\"><tr><td width=\"600\" ><div class=\"write\" align=\"right\">";

    $pgx=$cnt/$t_vis;
    settype($pgx,"int");
    $pgx+=1;

    for(
    $x=1;$x<=$pgx;$x++){
    if(
    $x==$pag){
    $xw="<b class=\"write\">$x</b>";
    }else{
    $xw=$x;
    }
    echo
    "[<a class=\"white\" href=\"News.php?pag=$x\">$xw</a>]&nbsp;&nbsp;";
    }
    echo
    "</div></td></tr></table>";

  6. #6
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Ciao ragazzi, scusate per l'up ma, in questi giorni ho lavorato meglio sullo script e l'ho cambiato quasi radicalmente, ma, ahimè, il cambio apgina non funziona ugualmente.
    Allora, cercherò di essere chiaro per farvi comprendere lo script passo dopo passo.

    Per primo imposto la variabile per il numero massimo di news visualizabili per pagina.
    Ad esempio :
    Codice PHP:
    $news_per_page = 10;
    Poi ralizzo una cosa del genere per indicare il numero amssimo di news visualizzabili in una pagina.

    Codice PHP:
    $from_news = ($_GET["page"]-1) * $news_per_page;
    $to_news = $_GET["page"] * $news_per_page - 1;
    In seguito indico che le news verranno prese dal database

    Codice PHP:
    $tot_news = count($op_db);
    E poi eseguo la divisione del totale delle news con quelle visualizzabili in una pagina in questo modo.

    Codice PHP:
    $num_pages = ceil($tot_news / $news_per_page);
    In seguito imposto tramite Array i numeri delle pagine visualizzabili in fondo.

    Codice PHP:
    for ($i=$from_news;$i<=$to_news;$i++) {
    echo
    $op_db[$i];
    }
    for (
    $i=1;$i<=$num_pages;$i++) {
    if (
    $i!=$_GET["page"]) echo "<a $href_page href=\"News.php?page=$i\">";
    echo
    $i;
    if (
    $i!=$_GET["page"]) echo "</a>";
    if (
    $i<$num_pages) echo " | ";

    }

    Con $op_db[$i] voglio indicare che le news sono contenute in un database di testo, difatti all'inizio della pagina h indicato $op_db=file("db_news.txt");

    Poi il resto dello script, per chi non l'avesse compreso, è strutturato in questo modo:
    Imposto le variabili per la formattazione dell'HTML:
    Codice PHP:
    $width_data = "70px";
    $style_data = "style=\"font-size:13px;font-family:verdana;\" ";
    $style_tabella = "style=\"padding-top:2px;\" ";
    $width_news = "530px";
    $width_tabella = "600px";
    $position_tabella = "align=\"center\" ";
    $position_div = "align=\"right\" ";
    $classe = "class=\"write\" ";
    $href_news= "class=\"news\" ";
    $href_page = "class=\"white\" ";
    $cellspacing = "cellspacing=\"0\" ";
    $cellpadding = "cellpadding=\"0\" ";
    $border = "border=\"0\" ";
    Dopo di che richiamo le variabili che verranno stampate a video prese dal database e, tramite Array, indico anche che le ultime News pubblicate dovranno essere visualizzate in cima:
    Codice PHP:
    $op_db=array_reverse($op_db);
    $cnt=count($op_db);

    foreach(
    $op_db as $val){
    list(
    $id,$nome,$data,$testo,$titolo,$mail,$foto)=explode("|",$val);
    Dopo questa semplice procedura tramite echo faccio stampare a video la vera e propria notizia tramite echo:
    Codice PHP:
    echo "<tr><td width=\"$width_data\" $style_data>$data&nbsp;</td> <td width=\"$width_news\" $classe><a $href_news href=\"vedi_news.php?id=$id\">$titolo</a></td></tr><tr><td colspan=\"2\" $classe> &nbsp;&raquo; ";
    Dopo ogni titolo ho voluto inserire la news vera e propria. Siccome essa è contenuta in un file di testo, dovrei richiamarlo tramite include, ma siccome con l'include non posso impostargli un limite massimo di carattere ho convertito il file di testo in variabile, in questo modo: $testo=file("./news/news_$id.txt");

    Dopo per richiamare la variabile $testo con il substr ho utilizzato l'Array x impostare il limite x una stringa, in questo modo:
    Codice PHP:
    for($i=0;$i<count($testo);$i++){$testo[$i] =substr($testo[$i], 0, 95); echo "$testo[$i]";}";
    Come potrete vedere ho impostato un limite di 95 caratteri.
    Il resto dello script è abbastanza semplice, sono solo tabelle e celle per l'impostazione della pagina che prendono informazioni dalle variabili sovracitate per l'HTML.

    Spero che sia stato chiaro, ora dovreste comprendere com'è strutturata la pagina.

    Solo che ottengo questi brutti risultati per il cambio pagina:

    http://silverseraph.altervista.org/News.php

    come posso fare?

    Grazie mile a chiunque provi ad aiutarmi.
    Saluti e buona giornata a tutti

  7. #7
    Guest

    Predefinito

    http://freephp.html.it/guide/lezioni.asp?idguida=8 è una guida pratica al php/MySQL in qui c'è una pagina che spiega prorpio come raggruppare le news in gruppi e mettere le successive nelle altre pagine, dovrebbe essere questa lezione: http://freephp.html.it/guide/lezione.asp?id=172.
    ciao

Regole di scrittura

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