Un saluto a tutti
sono qui a porvi un quesito si ChronoConnectivity
devo fare in modo che si possano effettuare delle ricerche su un db così formato:
a parte tutti quelli inseriti di default ho
cognome, nome,luogo nascita, datanascita, cf, residentein,...., corso, citàcorso.
vorrei dare la possibilità di interrogare il db ed effettuare la ricerca x cognome, corso o cità corso
nell where sql ho messo :
<?php
$session =& JFactory::getSession('ricerca');/*apro una sessione e
la chiamo 'ricerca' */
$search_array = array('cognome','corso','cittacorso'); /*creo un array
con questi valori (sono campi della tabella) */
$cerca = array(); //inizializzo un array
foreach ( $search_array as $search ) { /* assegno con un ciclo
for alla variabile $search sui 3 valori dei campi di ricerca */
$value = JRequest::getVar($search, '' , 'post'); /* estrae il valore
di un campo di ricerca. Il ciclo agirà su tutti i campi. */
if ( $value ) { /* se il valore esiste crea il contenuto dell'array
$cerca */
$cerca[] = " `$search` LIKE '%$value%' "; /* ogni array contiene
una condizione della ricerca. L'uso di LIKE consente di eseguire la
ricerca per il valore contenuto nel campo della tabella */
}
}
if(empty($cerca) and (JRequest::getVar('submit','no','POST')=="Trova")){ /*questo è
vero quando tutti i campi sono vuoti ed avvio unaricerca con campi
vuoti cliccando sul bottone trova */
$session->set('cerca','0','ricerca'); /*resetto la sessione della
ricerca a 0 */
JRequest::setVar('limitstart',0,'Get'); /* forzo la visualizzazione alla
prima pagina della navigazione */
}
if ( !empty($cerca) ){ /* questo è vero quando ci sono dei dati
inseriti da ricercare */
echo " WHERE ".implode(' AND ', $cerca); /* scrivo tutto l'array
$cerca e creo la condizione di ricerca. */
$session->set('cerca',$cerca,'ricerca'); /* memorizzo nella
sessione l'array $cerca che userò quando navigo fra le pagine e
voglio conservare i criteri della ricerca precedentemente inviati. */
}
elseif((JRequest::getVar('submit','no','POST')<>"Trova") and($session->get('cerca',0,'ricerca')<>0)) /* questa condizione
serve a stabilire quando navigo fra le pagine, cioè non ho usato il
tasto trova ed esiste già una ricerca memorizzata nella sessione */
{
$cerca=$session->get('cerca',0,'ricerca');/*carico la precedente
ricerca memorizzata nella sessione */
echo " WHERE ".implode(' AND ', $cerca);/* scrive la condizione
della ricerca */
}
else
{
echo ""; /* nessuna where (questo sarà verificato all'inizio) e in
caso di ricerca con campi nulli */
}
?>
nell' header
<div style="float:left; width: 100%; ">
<p> Cerca in <b>Corso</b>: <input type="text" name="Corso" />
<b>Cognome</b>: <input type="text" name="cognome" />
<b>Città</b>: <input type="text" name="cittaCorso" /></p)
<p style="text-align:center;">
<input type="submit" value="Trova" name="submit" style='width:80px;
color:#cccccc; background-color:#135cae; cursor:pointer;' />
<input type="reset" name="reset" value="Reset" style='width:80px;
color:#cccccc; background-color:#135cae; cursor:pointer;' /></p>
<p style="text-align:center;"><b>Per resettare la ricerca lanciarla con campi vuoti</b></p>
</div>
ora iniziano i problemi...
nel bady
ho visto su qualche forum questo codice
<?php
$db =& JFactory::getDBO();
$query = "
SELECT c.cognome, s.cognome
FROM #__categories as c, #__sections as s WHERE c.id = $MyRow->catid AND s.id = $MyRow->sectionid
";
$db->setQuery($query);
$nomes = $db->loadRow();
?>
<div>
<p>Cognome {cognome}</p>
<p>Corso {corso}</p>
<p>Cittò corso {cittacorso}</p>
</div>
<br/><br/>
come devo modificarlo???
la ricerca la fa solo per cognome chi mi può aiutare? oltretutto mi visualizza solo il cognome e non gli altri dati
grazie