• User Newbie

    Richiamare news attraverso ID

    ciao a tutti!
    sono veramente agli inizi di PHP e, anche se con grandi difficoltà, qualche volta ho delle minime soddisfazioni che mi fanno proseguire... 😃
    scusate da subito le stupidate che verranno fuori in ordine sparso fra i miei dubbi...

    dunque, sto usando php+MySQL...
    vorrei creare una pagina di NEWS nella quale si possano leggere diciamo una decina di NEWS in tutto. le NEWS sono in 2 lingue (IT e EN).
    ora, ho creato la mia bella tabella SQL (IDnews, newsTesto e newsLingua)
    e vorrei poter decidere quali news visualizzare (ad es. le NEWS 1,3,5,6,10, 12 ecc).
    in principio ho pensato che richiamarle a seconda dell'ID fosse la scelta giusta, ma non riesco proprio a trovare il modo per farlo!! accidenti...

    potete darmi una mano.
    intanto mi sto leggendo un po' di manuali che non fanno mai male!

    grazie a tutti!

    patrick


  • User

    select newsTesto
    from tabella
    where IDnews='$Idscelto';


  • User

    bhe se devi deciderle tu ok..altrimenti..visto che sono news ci inserisci un campo date/time e fai caricare cn una semplice query le ultime 10 o 5 news che hai inserito..

    allora per sceglierle tu fai cosi

    [PHP]
    $query = mysql_query("SELECT * FROM tabella WHERE IDnews='1' || IDnews='3' || IDnews='5' || IDnews='6' || IDnews='10' || IDnews='12' ");
    [/PHP]

    altrimenti come ti ho detto io ( CHE TI CONSIGLIO FORTEMENTE )

    [PHP]
    $query = mysql_query("SELECT * FROM tabella ORDER BY campo_data DESC LIMIT 10");
    [/PHP]

    :ciauz: :ciauz:


  • User Newbie

    wow,
    siete stati velocissimi.
    grazie!

    ora per fare un echo di una sola news devo fare in questo modo?

    <td width="700" align="left" valign="middle" class="site-text"><?php echo $rstPage->Fields("IDnews='1' ") ?></td>

    sono un po' confuso...

    patrick


  • User

    cosa stai usando delle classi?


  • User Newbie

    sì. per formattare il testo che voglio richiamare dal DB.
    ho pensato fosse più comodo.
    faccio male?

    mumble mumlble...


  • Super User

    Ciao canedrago,e benvenuto nel forum GT.
    Se hai un indirizzo url del tipo pagina.php**?id=numeronews **puoi fare così:

    [php]
    <?
    // dati configurazione accesso a mysql

    $res=mysql_fetch_assoc(mysql_query("select * from tabella where IDnews='$_GET[id]'"));
    // ho selezionato tutti i campi della tabella dove l'id è la variabile $_GET[id].
    echo $res[newsTesto];
    //scrivo il testo
    ?>
    [/php]


  • User Newbie

    grazie del benvenuto!
    sto trovando un sacco di info utili su questo forum...

    dunque, la situazione è questa: ho creato una pagina per mostrare delle news. il php di questa pagina (news.php) richiama inizialmente le funzioni per connettersi al DB e per ottenere le info dalla tabella che contiene i titoli e i testi di tutte le pagine (es. home, contatti, portfolio, news, ecc).
    faccio in seguito un'altra richiesta php per ottenere da un'altra tabella i testi di queste 10 benedette news sempre comprendendo la variabile lingua (IT e EN).
    l'URL si presenta così: news.php?lang=IT

    vorrei mostrare 10 news (una piccola immagine thumbnail 160x160 px affiancata da un testo di 3 righe per ogni news).

    ho provato a creare 10 spazi e a richiamare una specifica immagine + testo per ogni spazio, ma forse non è la scelta migliore vero?
    ho come l'impressione si possa fare diversamente e meglio...

    patrick


  • User Newbie

    ho provato in questo modo, ma ancora c'è qualcosa che non va...

    <?php
    //Connection statement
    require_once('../Connections/connection.php');

    // begin Recordset
    $varlang = 'IT';
    if (isset($_GET["lang"])) {
    $varlang = $_GET["lang"];
    }

    $query_rstProd = "SELECT * FROM pages WHERE pageNome = '". substr($_SERVER['PHP_SELF'], (strrpos( $_SERVER['SCRIPT_NAME'], "/") + 1)) ."'";
    $rstPage = $connection->SelectLimit($query_rstProd) or die($connection->ErrorMsg());

    ?>

    <?php
    //Connection statement
    require_once('../Connections/connection.php');

    // begin Recordset
    $colname__rstnewssez = 'IT';
    if (isset($_GET['lang'])) {
    $colname__rstnewssez = $_GET['lang'];
    }
    $query_rstnewssez = printf("SELECT * FROM newssez WHERE newsLingua = '%s' ORDER BY IDnews ASC", $colname__rstnewssez);
    $rstnewssez = $connection->SelectLimit($query_rstnewssez) or die($connection->ErrorMsg());
    $totalRows_rstnewssez = $rstnewssez->RecordCount();
    // end Recordset

    //PHP ADODB document - made with PHAkt 3.6.0
    ?>

    ALL'INTERNO DELLA PAGINA, PER VISUALIZZARE IL TESTO DELLA NEWS USO:

    <tr>
    <td width="285" height="150"> </td>
    <td width="220" height="150" valign="middle"><img src="../_images/news01.jpg" width="160" height="160"></td>
    <td width="700" align="left" valign="middle" class="site-text"><?php echo $rstnews->Fields("newsTesto$varlang") ?></td>
    </tr>

    dove sbaglio?


  • User Newbie

    mumble mumble...
    ho fatto qualche passo avanti, ma ancora non sono riuscito a risolvere il quesito principale, vale a dire mostrare il testo di una specifica NEWS accanto a un'immagine (non caricata su DB) ma richiamata semplicemente da HTML.

    per ora utilizzo questa forma:

    <?php
    //Connection statement
    require_once('../Connections/conn.php');

    $varlang = 'IT';
    if (isset($_GET["lang"])) {
    $varlang = $_GET["lang"];
    }

    $query_rstProd = "SELECT * FROM sitepages WHERE pageNome = '". substr($_SERVER['PHP_SELF'], (strrpos( $_SERVER['SCRIPT_NAME'], "/") + 1)) ."'";
    $rstPage = $conn->SelectLimit($query_rstProd) or die($conn->ErrorMsg());

    ?>
    <?php
    //Connection statement
    require_once('../Connections/conn.php');

    $colname__rstprodnews = 'IT';
    if (isset($_GET['lang'])) {
    $colname__rstprodnews = $_GET['lang'];
    }
    $query_rstprodnews = sprintf("SELECT * FROM pastornews WHERE NewsLingua = '%s' ORDER BY IDnews DESC", $colname__rstprodnews);
    $rstprodnews = $conn->SelectLimit($query_rstprodnews) or die($conn->ErrorMsg());
    $totalRows_rstprodnews = $rstprodnews->RecordCount();
    ?>


    in seguito, richiamo il primo testo accanto all'immagine così:

    <tr>
    <td width="220" height="150" valign="middle"><a href="../_images/img_news/news01_big.jpg"><img src="../_images/news01.jpg"></a></td>
    <td width="700" align="left" valign="middle" class="site-text">
    <?php echo $rstprodnews->Fields('newsNome'); ?><?php if ( (isset($_GET["news"]) && $_GET["news"] == $rstprodnews->Fields('')) ){ echo "</b>"; }?>
    </ul></td> </tr>


    ovviamente, in questo modo non seleziono alcun testo preciso, ma mostro semplicemente l'ultimo inserito nel DB (avendo usato DESC come metodo).

    qualcuno può aiutarmi a capire come richiamare il testo di un'altra NEWS.
    please! sto perdendo ogni speranza...
    sigh..

    grazie

    ciao


  • User Newbie

    Scarica


    poi lo installi
    poi lo usi per aprire il tuo database
    Clikki il bottone per creare le pagine php ed ecco fatto!


  • User Newbie

    ciao orion7,
    grazie della dritta!
    ma purtroppo la situazione è più complicata, oppure sono io a non saper usare al meglio il programma che mi hai consigliato.

    penso che il mio problema debba essere risolto in altro modo.

    ciao


  • User Newbie

    ci ho messo un po' ma ci sono arrivato...

    con firefox tutto funziona per benino, ma di explorer le immagini non ci sono e il testo ho una formattazione diversa?!?!?!?!

    ma cosa accipicchia è successo?!?!!?
    non mi era mai capitato prima.

    se può esservi utile vi posto il codice con cui richiamo i dati:

    <table width="955" height="200" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td width="195" height="120"> </td>
    <td width="190" height="200" valign="middle"><a href="../_images/news/news_big/<?php echo $rstprodnews->Fields('imgNews'); ?>"<img src="../_images/news/news_small/width="160" height="160"<?php echo $rstprodnews->Fields('imgNews'); ?>"</td>
    <td width="500" align="left" valign="middle" class="site-text"><?php echo $rstprodnews->Fields('newsNome'); ?><?php if ( (isset($_GET["news"]) && $_GET["news"] == $rstprodnews->Fields('')) ){ echo "</b>"; }?></td>
    </tr>
    </table>

    sta diventando più complicato del previsto...