Ciao a tutti,
Sto realizzando un modulo di ricerca con cui visualizzare tutti gli articoli contenuti in un database.
Allo stato attuale, la ricerca può essere effettuata per categoria, testo contenuto negli articoli, data online e offline come mostrato nell'immagine sottostante
Il codice usato è questo:
Fino qui tutto bene...poi dopo ore di lavoro mi sono accorto che non è il risultato che voglio e quindi mi sono incartato.
Ciò che vorrei è che una volta inseriti i criteri di ricerca il risultato fosse quello riportato in basso, ovvero presentare tutti i dati associati agli articoli e non solo quelli generati dalle opzioni di ricerca:
Ecco il codice con cui visualizzo la tabella che vorrei:
La mia domanda è: come posso visualizzare tutti i dati della seconda tabella dopo aver scelto i criteri di ricerca?
Spero di essermi spiegato bene.
Grazie
Sto realizzando un modulo di ricerca con cui visualizzare tutti gli articoli contenuti in un database.
Allo stato attuale, la ricerca può essere effettuata per categoria, testo contenuto negli articoli, data online e offline come mostrato nell'immagine sottostante
Il codice usato è questo:
PHP:
<?php
//SELECT DI BASE
$select = 'SELECT id, article_name, online_date, offline_date';
$from = ' FROM article';
$where = ' WHERE TRUE';
$placeholders = array();
if ($_GET['category'] != '') //CERCA CATEGORIE
{
$where .= " AND author_id = :author_id";
$placeholders[':author_id'] = $_GET['category'];
}
if ($_GET['searchOnlineDate'] != '') //CERCA ONLINE DATE
{
$where .= " AND online_date LIKE :online_date";
$placeholders[':online_date'] = '%' . $_GET['searchOnlineDate'] . '%';
}
if ($_GET['searchOfflineDate'] != '') //CERCA OFFLINE DATE
{
$where .= " AND offline_date LIKE :offline_date";
$placeholders[':offline_date'] = '%' . $_GET['searchOfflineDate'] . '%';
}
if ($_GET['text'] != '') //RICERCA TESTO INCLUSO NEGLI ARTICOLI
{
$where .= " AND article_name LIKE :article_name";
$placeholders[':article_name'] = '%' . $_GET['text'] . '%';
}
try
{
$sql = $select . $from . $where;
$s = $GLOBALS['pdo']->prepare($sql);
$s->execute($placeholders);
}
catch (PDOException $e)
{
$error = 'Errore recupero articoli' . $e->getMessage();
include 'error.html.php';
exit();
}
foreach ($s as $row)
{
$articles[] = array('id' => $row['id'], 'text' => $row['article_name'], 'searchOnlineDate'=>$row['online_date'], 'searchOfflineDate'=>$row['offline_date']);
}
?>
Fino qui tutto bene...poi dopo ore di lavoro mi sono accorto che non è il risultato che voglio e quindi mi sono incartato.
Ciò che vorrei è che una volta inseriti i criteri di ricerca il risultato fosse quello riportato in basso, ovvero presentare tutti i dati associati agli articoli e non solo quelli generati dalle opzioni di ricerca:
Ecco il codice con cui visualizzo la tabella che vorrei:
PHP:
<?php
include 'includes/db.inc.php';
//CREAZIONE QUERY
try {
$query_sql = 'SELECT article_name, online_date, offline_date, date_month, date_year, article.id, author.author_name, group_concat(lang_name) FROM article
INNER JOIN author
ON article.author_id = author.id
inner join lookuplang
on article.id = lookuplang.articleID
inner join lang
on langID = lang.id
GROUP BY article.id';
$result = $GLOBALS['pdo']->query($query_sql);
}
catch(PDOException $e) {
$error = 'Selezione al DB non riuscita' . $e->getMessage();
include 'error.html.php';
exit();
}
//VISUALIZZAZIONE RECORD
foreach($result as $row) {
$valori[] = array('id'=>$row['id'], 'article_name'=>$row['article_name'], 'online_date'=>$row['online_date'], 'offline_date'=>$row['offline_date'],'date_month'=>$row['date_month'],'date_year'=>$row['date_year'], 'author_name'=>$row['author_name'], 'lang_name'=>$row['group_concat(lang_name)']);
}
include 'articoli.html.php';
?>
La mia domanda è: come posso visualizzare tutti i dati della seconda tabella dopo aver scelto i criteri di ricerca?
Spero di essermi spiegato bene.
Grazie