Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Pubblicazione news in homepage

    Premesso che ho cercato l'argomento specifico all'interno del forum (onde evitare polemiche da parte di taluni utenti), vorrei presentare un problema che mi sono posto relativamente alla gestione dele news del mio sito. Or bene, il punto è questo. Nella mia home page ho l'anteprima di alcune news. News che vengono inserite in un database e poi, in automatico, pubblicate. Per comprenderci meglio scrivo il codice della home page:

    <?php

    include("config.php");
    mysql_connect($db_host, $db_user, $db_password, $db_name) or die ("non riesco a connettermi");
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");

    $dati = mysql_query("SELECT art_id, titolo, sottotitolo, testo, immagine, date_format(data,'%d-%m-%Y %H:%i') AS dataora
    FROM articoli
    ORDER BY art_id DESC
    LIMIT 1");

    $array = mysql_fetch_array($dati);

    ?>
    <div class="textimage">[img]show.php?id=<?php echo $array['art_id']; ?>[/img]

    <h2>
    <?php echo "<tr><td>$array[titolo]</td></tr>
    ";
    ?>
    </h2>




    <h2>
    <?php echo "<tr><td>$array[sottotitolo]</td></tr>
    ";
    ?>
    </h2>




    <h3>
    <?php
    $swap = explode(" ", $array['testo'], 21);
    foreach($swap as $key => $val) if($key < 20) echo $val." ";
    echo "<a href=\"page.php?id=".$array['art_id']."\">.....leggi</a>

    ";
    ?>
    </h3>




    <h4>
    <?php
    echo "Pubblicato il ".substr($array ['dataora'],0,10)." alle ". substr($array ['dataora'],11,5);
    mysql_close();
    ?>
    </h4>


    Evito di inserire il codice delle altre nws perchè cambia solo l'esecuzione della query. Ossia, invece che esserci LIMIT 1, ho messo LIMIT 2,1 e così via.
    In questo modo viene pubblicata sempre l'ultima news, poi la penutlima e così via. Ora, il problema è questo. Invece che inserire così automaticamente le news in homepage, vorrei realizzare una pagina di controllo. Mi spiego. Una pagina nella quale siano visibili ad esempio i titoli delle news, con accanto un pulsante "pubblica". A dire il vero una pagina del genere l'ho già, chiamata "estrazione.php", nella quale sono impaginati i titoli delle news ed accanto ho inserito i pulsanti modifica o elemina. In questo modo potrei avere la possibilità di sciegliere quale articolo pubblicare in home page e non per forza l'utlimo o così via. Cioè potrei pubblicare ad esempio una news scritta 10 giorni fa.

    Capisco che in questo modo devo cambiare il codice nella home page, ma mi sarebbe di grande utilità. Solo che non ho l'idea di come poter strutturare il tutto!!! Quello che non capisco è come fare, proprio praticamente, a realizzare il tasto "pubblica" che poi invii la news alla home page in una determinata sezione della stessa! Spero di essere stato chiaro...

    Qualcuno sa darmi una mano?

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Fai un campo pub nel DB che stabilisce se la news deve essere pubblicata o no, e cliccando sul pulsante "pubblica" affianco alla news setti quel campo a 1. Poi metti un controllo che se la news ha il campo "pub" settato a 1, viene pubblicata.

    Se mi dai più info posso aiutarti meglio. Posta il codice della pagina in cui vuoi metter ei tasti "pubblica" e spigami se vuoi che più news siano pubblicabili o sempre e solo una news per volta.


  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Allora Drugo,
    ecco il codice relativo alla pagina di estrazione dei dati, dove vorrei inserire il pulsante pubblica.


    <?php
    include("config.php");
    mysql_connect($db_host,$db_user,$db_password,$db_n ame) or die ("errore nella connessione");
    mysql_select_db("$db_name") or die ("errore nella selezione del database");

    $count = mysql_query("SELECT COUNT(art_id) FROM articoli");
    $res_count = mysql_fetch_row($count);


    $tot_records = $res_count[0];


    $per_page = 5;


    $tot_pages = ceil($tot_records / $per_page);


    $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];


    $primo = ($current_page - 1) * $per_page;

    echo "<div align=\"center\">\n<table>\n";


    $query_limit = mysql_query("SELECT art_id, titolo FROM articoli LIMIT $primo, $per_page");
    while($results = mysql_fetch_array($query_limit)) {
    echo " <tr>";
    echo "<td><a href=\"page.php?id=" . $results['art_id'] . "\">" . $results['titolo'] . "</a></td>";
    echo "<td><a href=\"modifica.php?id=" . $results['art_id'] . "\">modifica</td> ";
    echo "<td><a href=\"elimina.php?id=" . $results['art_id'] . "\">elimina</td> ";
    echo "</tr>";
    }


    include("paginazione_2.php");
    //include("paginazione_1.php");


    echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";

    echo " </tr>\n</table>\n</div>";
    mysql_close();
    ?>


    Ecco, vorrei inserire il tasto "pubblica" magari al fianco di modifica ed elimina. Mi servirebbe pubblicare solo una news per volta, tuttavia mi farebbe comodo conoscere anche l'altro metodo.
    Ancora grazie per la pazienza

  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Aggiungi un bampo pub nella tabella "articoli".

    poi...

    modifichi la pagina di modifica cosi:

    Codice PHP:
    <?php
    include("config.php");

    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("errore nella connessione");
    mysql_select_db("$db_name") or die ("errore nella selezione del database");

    $count mysql_query("SELECT COUNT(art_id) FROM articoli");
    $res_count mysql_fetch_row($count);


    $tot_records $res_count[0];


    $per_page 5;


    $tot_pages ceil($tot_records $per_page);


    $current_page = (!$_GET['page']) ? : (int)$_GET['page'];


    $primo = ($current_page 1) * $per_page;

    echo 
    "<div align=\"center\">\n<table>\n";


    $query_limit mysql_query("SELECT art_id, titolo FROM articoli LIMIT $primo$per_page");
    while(
    $results mysql_fetch_array($query_limit)) {
    echo 
    " <tr>";
    echo 
    "<td><a href=\"page.php?id=" $results['art_id'] . "\">" $results['titolo'] . "</a></td>";
    echo 
    "<td><a href=\"modifica.php?id=" $results['art_id'] . "\">modifica</td> ";
    echo 
    "<td><a href=\"elimina.php?id=" $results['art_id'] . "\">elimina</td> ";
    echo 
    "<td><a href=\"pubblica.php?id=" $results['art_id'] . "\">pubblica</td> ";
    echo 
    "</tr>";
    }


    include(
    "paginazione_2.php");
    //include("paginazione_1.php");


    echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";

    echo 
    " </tr>\n</table>\n</div>";
    mysql_close();
    ?>
    e crei una pagina chiamata [b]pubblica.php[/p] e ci metti dentro:

    Codice PHP:
    <?php

    include("config.php");

    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("errore nella connessione");
    mysql_select_db("$db_name") or die ("errore nella selezione del database");

    $sql "UPDATE articoli SET pub = '0'";
    mysql_query($sql);

    $sql "UPDATE articoli SET pub = '0' WHERE art_id = '".$_GET['id']."'";
    mysql_query($sql);

    // fai un redirect a dove vuoi tu
    ?>
    Cosi ti viene pubblicata solo una news per volta.
    L'alternativa sarebbe pubblicare più news divise per pagine, ma è da rivedere un po tutta la struttura.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ok Drugo,
    ho capito il concetto. Mi manca però da capire una cosa. Clikkando sul tasto pubblica, la news dove viene pubblicata?

    Ad inizio post ho inserito il codice della home page, dove ho una particolare struttura in html. Ossai, ho 2 Div textimage dove ho inserito tutto il codice php per la pubblicazione delle news (difatti se noti la query con il LIMIT è proprio in queste sezioni). Il codice scritto riporta infatti anche la struttura html.
    In queste sezioni della home page, devo cambiare qualcosa del codice? Forse l'header a cui fai riferimento è quello relativo alla home page?

  6. #6
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    la homepage diventa cosi (cambia solo la query):

    Codice PHP:
    <?php

    include("config.php");
    mysql_connect($db_host$db_user$db_password$db_name) or die ("non riesco a connettermi");
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");

    $dati mysql_query("SELECT art_id, titolo, sottotitolo, testo, immagine, date_format(data,'%d-%m-%Y %H:%i') AS dataora FROM articoli WHERE pub = 1");

    $array mysql_fetch_array($dati);

    ?>
    <div class="textimage">[img]show.php?id=<?php echo $array['art_id']; ?>[/img]

    <h2>
    <?php echo "<tr><td>$array[titolo]</td></tr>
    "
    ;
    ?>
    </h2>




    <h2>
    <?php echo "<tr><td>$array[sottotitolo]</td></tr>
    "
    ;
    ?>
    </h2>




    <h3>
    <?php
    $swap 
    explode(" "$array['testo'], 21);
    foreach(
    $swap as $key => $val) if($key 20) echo $val." ";
    echo 
    "<a href=\"page.php?id=".$array['art_id']."\">.....leggi</a>

    "
    ;
    ?>
    </h3>




    <h4>
    <?php
    echo "Pubblicato il ".substr($array ['dataora'],0,10)." alle "substr($array ['dataora'],11,5);
    mysql_close();
    ?>
    </h4>

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Perfetto. Ho capito. Mi sorge ora un dubbio.
    Come ti ho detto in home page ho più DIV TEXTIMAGE. Nel senso che, ora come ora, in home page ci sono tre news pubblicate.
    Con la query che mi hai postato tu non succede che in tutte e tre le seizioni DIV viene pubblicata la stessa news? Cioè quella con "pub = 1"?
    Se ho scritto una cavolata pardon........... :master:

  8. #8
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Quindi in pratica tu nell'homepage vuoi pubblicare 3 news? se si, ci sono da cambiare un paio di cose...

    homepage:

    Codice PHP:
    <?php

    include("config.php");
    mysql_connect($db_host$db_user$db_password$db_name) or die ("non riesco a connettermi");
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");

    $dati mysql_query("SELECT art_id, titolo, sottotitolo, testo, immagine, date_format(data,'%d-%m-%Y %H:%i') AS dataora FROM articoli WHERE pub = 1");

    while(
    $array mysql_fetch_array($dati))
    {
        
    ?>
        <div class="textimage">[img]show.php?id=<?php echo $array['art_id']; ?>[/img]
        
        <h2>
        <?php echo "<tr><td>$array[titolo]</td></tr>
    "
    ;
        
    ?>
        </h2>
        
        

        
        <h2>
        <?php echo "<tr><td>$array[sottotitolo]</td></tr>
    "
    ;
        
    ?>
        </h2>
        
        

        
        <h3>
        <?php
        $swap 
    explode(" "$array['testo'], 21);
        foreach(
    $swap as $key => $val) if($key 20) echo $val." ";
        echo 
    "<a href=\"page.php?id=".$array['art_id']."\">.....leggi</a>

    "
    ;
        
    ?>
        </h3>
        
        

        
        <h4>
        <?php
        
    echo "Pubblicato il ".substr($array ['dataora'],0,10)." alle "substr($array ['dataora'],11,5);
    }

    mysql_close();
    ?>
    </h4>
    pubblica.php
    Codice PHP:
    <?php

    include("config.php");

    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("errore nella connessione");
    mysql_select_db("$db_name") or die ("errore nella selezione del database");

    $sql "UPDATE articoli SET pub = '0' WHERE art_id = '".$_GET['id']."'";
    mysql_query($sql);

    // fai un redirect a dove vuoi tu
    ?>
    file di modifica resta invariato:

    Codice PHP:
    <?php
    include("config.php");

    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("errore nella connessione");
    mysql_select_db("$db_name") or die ("errore nella selezione del database");

    $count mysql_query("SELECT COUNT(art_id) FROM articoli");
    $res_count mysql_fetch_row($count);


    $tot_records $res_count[0];


    $per_page 5;


    $tot_pages ceil($tot_records $per_page);


    $current_page = (!$_GET['page']) ? : (int)$_GET['page'];


    $primo = ($current_page 1) * $per_page;

    echo 
    "<div align=\"center\">\n<table>\n";


    $query_limit mysql_query("SELECT art_id, titolo FROM articoli LIMIT $primo$per_page");
    while(
    $results mysql_fetch_array($query_limit)) {
    echo 
    " <tr>";
    echo 
    "<td><a href=\"page.php?id=" $results['art_id'] . "\">" $results['titolo'] . "</a></td>";
    echo 
    "<td><a href=\"modifica.php?id=" $results['art_id'] . "\">modifica</td> ";
    echo 
    "<td><a href=\"elimina.php?id=" $results['art_id'] . "\">elimina</td> ";
    echo 
    "<td><a href=\"pubblica.php?id=" $results['art_id'] . "\">pubblica</td> ";
    echo 
    "</tr>";
    }


    include(
    "paginazione_2.php");
    //include("paginazione_1.php");


    echo " <tr>\n <td height=\"50\" valign=\"bottom\" align=\"center\">$paginazione</td>\n";

    echo 
    " </tr>\n</table>\n</div>";
    mysql_close();
    ?>
    Cosi facendo puoi pubblicare quante news vuoi...quelle a cui applichi il "pubblica" apariranno in homepage.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    :master: Che cambiamenti hai apportato?

    Non stò riuscendo a vederli.....

  10. #10
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    beh...tanto per farti capire c'è un while nella homepage (togli il codice che viene dopo a quello nella tua versione)

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.