Back to top

Autore Topic: ChronoConnectivity  (Letto 1686 volte)

Offline neo_revolution

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
ChronoConnectivity
« il: 05 Mag 2010, 14:39:19 »
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 :


Codice: [Seleziona]
<?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
Codice: [Seleziona]
<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
Codice: [Seleziona]
<?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
« Ultima modifica: 05 Mag 2010, 14:53:40 da neo_revolution »

Offline neo_revolution

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
Re:ChronoConnectivity
« Risposta #1 il: 05 Mag 2010, 15:13:46 »
Citazione
SELECT c.cognome, s.cognome
 FROM #__categories as c, #__sections as s WHERE c.id = $MyRow->catid AND s.id = $MyRow->sectionid

ho corretto qui aggiungendo i campi così

Codice: [Seleziona]
SELECT c.cognome, s.cognome , c.corso. s.corso
 FROM #__categories as c, #__sections as s WHERE c.id = $MyRow->catid AND s.id = $MyRow->sectionid

ed escono ora però come posso dare la possibilità di correggere un errore su un campo?

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:ChronoConnectivity
« Risposta #2 il: 05 Mag 2010, 18:18:19 »
Se non hai tabelle in relazione fra loro, come mi sembra, il codice php nel body lo puoi togliere completamente. Infatti esso ha il compito di andare a prendere la descrizione di un campo di una tabella in relazione con la tabella principale (quella definita nella connessione in tables name per capirsi).

Attenzione quel codice funziona con chronoconnectivity originale non con quello modificato di chronoconnectivity2.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline neo_revolution

  • Nuovo arrivato
  • *
  • Post: 20
    • Mostra profilo
Re:ChronoConnectivity
« Risposta #3 il: 06 Mag 2010, 10:23:35 »
ho seguito il tuo consiglio e tutto funziona.
ora per consentire le modifiche come devo fare?
tipo mettere il tasto edit delete

 



Web Design Bolzano Kreatif