• User

    PHP + Mysql

    Salve, avrei un problema.

    Io ho un sito in joomla. Ora ne dovrei fare uno che prende i contenuti dal database di joomla.

    Il mio problema è il seguente:

    Riesco tranquillamente a leggere gli articoli ma volevo sapere qual'è il modo per far si che io metta solamente il titolo dell'articolo ipertestuale.

    Io vorrei mettere la "lista" dei titoli degli articoli e chi interessa clicca e legg tutto l'articolo.

    Come devo fare?


  • ModSenior

    Ciao djmatto,

    devi semplicemente fare una query che prenda più righe dalla tabella, e ciclarndoli mostrare il titolo.


  • User

    Ciao, grazie.

    Io ho il codice:

    $query = 'SELECT title, created, introtext, catid, state
                FROM jos_content
                WHERE catid=40 and state=1
                ORDER by created DESC';
    $results = mysql_query ($query, $db) or die (mysql_error ($db));
    
    
    
    while ($row = mysql_fetch_array ($results)) {
        extract ($row);
        echo '<h1>'.$title . '</h1>'  '<br /><br /><br />';
    }
    

    ?>

    che mi stampa tutti i titoli presenti in quella determinata categoria.

    Ma non ho capito come posso farlo diventare ipertestuali in maniera che ogni titolo si collegato al relativo aricolo


  • ModSenior

    Aggiungi il tag a nell'echo per creare il collegamento verso una pagina del tipo: vedi.php?id=IDContent ed in quella pagina ti recuperi l'id passato nell'url (GET) per mostrarlo.


  • User

    Ciao grazie per le risposte sono state utilissime.

    Allora ho risolto il problema degli url con il codice:

    while ($row = mysql_fetch_array ($results)) {
    
        extract ($row);
        echo "<a href=\"visti.php?id=$id\"><h1>".$title . "</h1></a>";
    }
    

    ?>

    </body>

    dove $id è l'id che joomla da ad ogni articolo che uno scrive, e funziona.

    Ora però non ho capito come devo fare sono arrivato fino a

    $results = mysql_query ($query, $db) or die (mysql_error ($db));
    
    echo $_GET[$id];
    

    per recuperare l'id ma ora non so come fare per dirgli di stampare solo l'articolo con l'id dell'url.


  • ModSenior

    Nella pagina di visualizzazione fai la query cosi:
    [php]
    $query = 'SELECT title, created, introtext, catid, state
    FROM jos_content
    WHERE id = '.$_GET['id'].' LIMIT 1';
    [/php]
    E hai recuperato l'articolo che ti interessava.
    Sarebbe meglio filtrare $_GET['id'] in ogni caso prima di passarlo direttamente alla queyr come nell'esempio sopra, per questioni di sicurezza.


  • User

    Ciao, grazie infinite per il tuo aiuto.

    Io ho messo il codice:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xxxx">
    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

    </head>
    <body>
    <?php
    $db = mysql_connect ('xxxx', 'xxxx', 'xxxx') or
    die ('Impossibile connettersi. Controlla la tua connessione');
    mysql_select_db ('xxxx', $db) or die (mysql_error($db));
    $query = 'SELECT title, created, introtext, catid, state
    FROM jos_content
    WHERE id = '.$_GET['id'].' LIMIT 1';

    $results = mysql_query ($query, $db) or die (mysql_error ($db));
    
    
    
    while ($row = mysql_fetch_array ($results)) {
        extract ($row);
        echo '<h1>'.$title . '</h1>' . ' <p> ' . $introtext . ' </p><p> ' . $created . '</p><br /><br /><br />';
    }
    

    ?>

    </body>

    come da te suggerito ma se lo provo mi da pagina bianca senza errori però non stampa neanche l'articolo


  • ModSenior

    Fai un echo della query:
    [php]
    <?php
    $db = mysql_connect ('xxxx', 'xxxx', 'xxxx') or
    die ('Impossibile connettersi. Controlla la tua connessione');
    mysql_select_db ('xxxx', $db) or die (mysql_error($db));
    $query = 'SELECT title, created, introtext, catid, state
    FROM jos_content
    WHERE id = '.$_GET['id'].' LIMIT 1';
    echo $query;
    $results = mysql_query ($query, $db) or die (mysql_error ($db));

    while ($row = mysql_fetch_array ($results)) {
        extract ($row);
         echo '<h1>'.$title . '</h1>' . ' <p> '  . $introtext . ' </p><p> ' . $created . '</p><br  /><br /><br />';
    }
    

    ?>
    [/php]
    E vedi se viene generata correttamente.


  • User

    grazie ho capito dove era il problema adesso va tutto!