• User Newbie

    Select singolo record

    Ciao, scrivo in php da un paio di settimane e tra i tanti tutorial in rete alla fine ho realizzato il mio primo script per visualizzare delle news prese dal mio db mysql. Tutto ok. Vorrei fare in modo adesso che gli ultimi 4 articoli inseriti in ordine di tempo siano visualizzati sulla home page uno per uno all'interno di <table> codice1...</table>, <table> codice2...</table> ecc. .:x poi li posiziono con dei fogli di stile.
    Posto il codice per far capire meglio:
    <?
    include("conn.php");
    $db_tab = @mysql_connect($host, $user, $password);
    if ($db_tab == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file conn.php");
    @mysql_select_db($db_name, $db_tab)
    or die ("Errore nella selezione del database. Verificare i parametri nel file connessione.php");
    /Il primo articolo da visualizzare sarà memorizzato in una variabile che passeremo alla pagina con il metodo get. Se questa non viene passata assumiamo questo valore uguale a zero, quindi visualizzeremo gli ultimi articoli. Impostiamo inoltre il numero di articoli da visualizzare contemporaneamente a 8:/
    if (!isset($start) OR $start<0)
    $start= 0;
    $stop = 1;//variato da me per visualizzare solo un record
    $query = "SELECT id,data,testo FROM articoli ORDER BY data DESC LIMIT $start,$stop";
    /* I parametri del vincolo LIMIT sono variabili. $stop è impostato a priori e sempre fisso, $start varia invece a seconda del valore passato alla pagina.*/
    $result = mysql_query($query, $db_tab);
    while ($row = mysql_fetch_array($result))
    {
    $testoform = wordwrap($row[testo]);
    nl2br($testoform);
    echo substr("$testoform",0,320);
    }
    mysql_close($db_tab);
    ?>

    l'ultimo record inserito in ordine di tempo funziona perfettamente ma per gli altri 3 non so prorpio come fare.
    Grazie per i vostri suggerimenti.


  • Super User

    Ciao live e benvenuto nel forum GT,
    prova ad impostare il valore di $stop a 4.
    Quindi:
    $stop = 4;

    😉
    Ciao!


  • User Newbie

    @probid said:

    Ciao live e benvenuto nel forum GT,
    prova ad impostare il valore di $stop a 4.
    Quindi:
    $stop = 4;

    😉
    Ciao!

    Grazie probid per il suggerimento. Nel frattempo ho risolto il problema ordinandoli per id ed utilizzando **mysql_result **e togliendo il ciclo while ke non serviva a nulla.
    $query = mysql_query("SELECT id,titolo FROM articoli ORDER BY id DESC");
    $result = mysql_result($query, 0,'titolo');
    echo substr("$result",0,250);

    $query = mysql_query("SELECT id,titolo FROM articoli ORDER BY id DESC");
    $result = mysql_result($query, 1,'titolo');
    echo substr("$result",0,250);
    ecc. ecc. Va alla grande!!
    Adesso devo solo inserire i collegamenti <a href>, vado a provare.
    Ciao e grazie ancora.


  • Super User

    🙂
    Chiedi pure qui se riscontri qualche problema 😉
    Ciao!


  • User Newbie

    Ciao pensavo fosse semplice inserire il collegamento facendo così invece... non visualizza il titolo anzi penso ignori totalmente la variabile.

    $query = mysql_query("SELECT id,titolo FROM articoli ORDER BY id DESC");
    $result = mysql_result($query, 1,'titolo');
    //anzichè echo substr("$result",0,250);
    inserivo il risultato in una variabile e poi la stampavo a video:
    $dati = substr("$result",0,250);
    echo "<a href="../view.php?id=$dati[titolo]"></a>";
    Dove sbaglio? :mmm:
    Spero in un aiuto altrimenti mi toccherà fare le ore piccole stanotte.


  • Super User

    Prova così:
    [php]$query = mysql_query("SELECT id,titolo FROM articoli ORDER BY id DESC");
    echo "<a href="../view.php?id=".substr(mysql_result($query, 1,'titolo'),0,250).""></a>";[/php]Ciao!


  • User Newbie

    @probid said:

    [php]
    echo "<a href="../view.php?id=".substr(mysql_result($query, 1,'titolo'),0,250).""></a>";Prova così:
    [php]$query = mysql_query("SELECT id,titolo FROM articoli ORDER BY id DESC");[/php][/php]Ciao!

    niente la pagina viene visualizzata ma non il titolo.
    Continuo a scervellarmi ed a leggere cmq grazie.


  • User Newbie

    Risolto in parte ho fatto così:
    $query = mysql_query("SELECT id,data,titolo FROM articoli ORDER BY id DESC");
    $result = mysql_result($query, 0,'titolo');
    $dati = substr("$result",0,250);
    echo "<a href="../view.php?id=$dati">$dati</a>";

    Visualizza il titolo ma non mi da il collegamento cmq un piccolo passo avanti.
    Grazie probid


  • Super User

    Bene :):)
    Ciaooooo e a presto!!!


  • User Newbie

    Se può servire a qualcuno ho risolto cosi:
    <?
    include("conn.php");
    $db_tab = @mysql_connect($host, $user, $password);
    if ($db_tab == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file conn.php");
    @mysql_select_db($db_name, $db_tab)
    or die ("Errore nella selezione del database. Verificare i parametri nel file conn1.php");
    $query = mysql_query("SELECT id,substring(testo, 1, 440) as tit FROM articoli ORDER BY id DESC LIMIT 0,1");
    while (list($id,$testo) = mysql_fetch_array($query)) {
    $testo = stripslashes( $testo );
    print "<a href="../view.php?id=$id">$testo</a>";
    }

    mysql_close($db_tab);
    ?>
    :fumato: