- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- PHP + Mysql
-
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?
-
Ciao djmatto,
devi semplicemente fare una query che prenda più righe dalla tabella, e ciclarndoli mostrare il titolo.
-
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
-
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.
-
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.
-
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.
-
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
-
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.
-
grazie ho capito dove era il problema adesso va tutto!