Back to top

Autore Topic: Filtro per tabella  (Letto 10991 volte)

Offline marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Filtro per tabella
« il: 21 Feb 2013, 14:52:42 »
Salve a tutti. Ho un problema con i filtri di una tabella. Ho letto la guida 1 2 di vales , ma non sono riuscita nell'intento.
Vi chiedo di aiutarmi a capire....
Dunque ho visualizzata in un form i dati di una tabella, e fin qui tutto ok. Ora voglio filtrarli nel senso che voglio vedere solo quelli dell'utente registrato che ha accesso al form.
In db multi record loader ho scritto username in db field. Il risultato è che mi filtra i record con username=null. Ho dedotto che il valore username non lo legge.

Vi chiedo come devo fare per costruire correttamente il filtro??

Vi ringrazio anticipatamente

Offline marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #1 il: 21 Feb 2013, 14:59:42 »
Vi prego di rispondermi.... sento che è una sciocchezza che sbaglio, ma non posso procedere nel mio lavoro.

Grazie.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #2 il: 22 Feb 2013, 21:27:50 »
Occorre inserire del codice idoneo nel campo WHERE statement che filtra i record in caso di utente loggato e non mostra nulla nel caso utente non loggato.

Tipo questo

Codice: [Seleziona]
<?php
$user 
=& JFactory::getUser();
if ( 
$user->id ) {
echo 
"cf_user_id =".$user->id;
}else{
echo 
"cf_user_id = -1";
}
?>

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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #3 il: 25 Feb 2013, 19:10:03 »
Grazie Vales per il tuo interessamento.
Ma non funziona il tuo suggerimento.
Ho così settato il mio Db multi record loader:
db field= userrname (campo filtro)
table = assenze (tabella da cui estrarre i record e contenente il campo username)
model id=UserDetails (modello array per visualizzare i dati... funziona senza filtro)
load data=yes
where=
<?php
$user =& JFactory::getUser();
if ( $user->username > 0 ) {
echo "username =".$user->username;
}else{
echo "username = -1";
}
?>

il risultato è tabella vuota, non ci sono record!

Dove sbaglio?????
Ti prego aiutami...

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #4 il: 25 Feb 2013, 19:54:58 »
Nell'esempio della guida funziona.

Il tuo codice non è corretto $user->username è una stringa non la puoi confrontare con zero.

Quali sono i campi della tabella che hai creato ?
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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #5 il: 25 Feb 2013, 19:58:34 »
Questi i campi:

cf_id1208
cf_uidIZGFlYzU0M2EwOTRjdf2fd6f87295944a6d68c1d4a788c7a9
cf_created2011-11-17 17:47:43
cf_modified0000-00-00 00:00:00
cf_created_by0
cf_modified_by0
cf_ipaddress89.97.124.69
cf_user_id341
prot2789
data_prot17/11/2011
tipoferie a.s. precedente
motivo
inizio20/07/2012
fine24/08/2012
giorni30
altro
submit
as2011/2012
username MFFGNN47A11G131Y

la tabella deve essere filtrata sul campo (indicizzato) username che è il codice fiscale del loggato e corrisponde anche al suo username.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #6 il: 25 Feb 2013, 21:02:52 »
Proporrei questo

Codice: [Seleziona]
<?php
$user 
=& JFactory::getUser();
if ( 
$user->id ) {
echo 
"username =".$user->username;
}else{
echo 
'username = "" ';
}
?>

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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #7 il: 25 Feb 2013, 22:07:04 »
niente tutto bianco.....

 :'( :-\ :'(

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #8 il: 26 Feb 2013, 19:37:40 »
Ma sei loggata come utente, che hai mostrato, quando fai la prova?
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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #9 il: 26 Feb 2013, 21:08:09 »
 :P
Si, ma ho appena trovato l'errore...... il nome della tabella portava due underscoore e io lo scrivevo con uno!!!
URRAH...

Tutte le tue indicazioni sono corrette.
Approfitto del tuo interessamento.
Ora ho visualizzato l'elenco, e voglio cancellare un record.
Sono riuscita a portarmi attraverso token il cf_uid del record in un altro form dove ho il codice per cancellare che ti posto:

<?php
$db=&JFactory :: getDBO();
$db-> setQuery ( "delete from jos_chronoforms_assenzedirigenti where cf_uid='$_Post[cf_uid]' ");
$cab=$db->loadRow();
?>

Ma ovviamente il codic in grassetto è errato come devo correggerlo????

Grazie ancora vales, ... mi hai ridato 10 anni di vita!!!!

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #10 il: 26 Feb 2013, 21:58:42 »
Prova ad usare chronoconnectivity nuova versione e vedrai che le operazioni di lettura, aggiunta, modifica, cancellazione dei record  sono molto semplici.

Comunque per quanto rigurda il codice farei queste modifiche

Codice: [Seleziona]
<?php
$db
=&JFactory :: getDBO();
$db-> setQuery "delete from jos_chronoforms_assenzedirigenti where cf_uid='".$_POST['cf_uid']);
$db->query();
?>

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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #11 il: 26 Feb 2013, 23:32:05 »
 :'( il record non si cancella....

colpa del cf_uid che non passa ....

Offline marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #12 il: 26 Feb 2013, 23:32:47 »
chronoconnectivity funziona con joomla 2.5 e chronoform 4?

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #13 il: 27 Feb 2013, 20:08:50 »
prova ad usare $form->data['cf_uid'] al posto $_POST oppure $form->data['tuo_model_id']['cf_uid']

certo la versione v4 è fatta apposta per Joomla 2.5
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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #14 il: 28 Feb 2013, 14:34:28 »
Graziesssssssssssimo Vales!!!
Ultimo suggerimento  :P !
Cosa c'è che non va in questo codice?

<?php
$db=&JFactory :: getDBO
$cod=$form->data['cf_uid'] ;
$db-> setQuery ( "delete from jos_chronoforms_assenzedirigenti where cf_uid= '$cod' ");
$cdm=$db->loadRow();
?>

La variabile $cod la prende, come da tuo suggerimento, ma la query non la esegue....
Naturalmente è stato inserito on submit e richiamato con un tasto di conferma.


Grazie ancora per il tuo interessamento.
« Ultima modifica: 28 Feb 2013, 14:36:23 da marialba »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #15 il: 28 Feb 2013, 18:03:24 »
Credo di aver dimenticato qualcosa prova questo qui

Codice: [Seleziona]
<?php
$db
=&JFactory :: getDBO();
$db-> setQuery "delete from jos_chronoforms_assenzedirigenti where cf_uid='".$_POST['cf_uid']."'");
$db->query();
?>


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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #16 il: 01 Mar 2013, 13:57:03 »
non va, vales!?!?!

Non riesco proprio a capire perchè non cancella il record.
Ho controllato proprio tutto quello che potevo:
in mysql funziona ok
se mi faccio riscrivere la query mi passa il parametro corretto

Temo che l'errore sia nella posizione in cui ho messo questo custom code. E' inserito in on submit e poi c'è un redirect User. Deve essere per caso aggiunto altro ?
Oppure in on load? qualche action relativa al db????

Incomincio a rimpiangere il vecchio chronoforms, dove scrivevo il codice e funzionava!

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #17 il: 01 Mar 2013, 15:58:11 »
Va bene in on submit perchè dal form con la conferma avvii la cancellazione.

Ho visto che hai usato il model o lo togli o lo inserisci nel $form->data. Avevi provato in questo modo.

Ultima cosa al posto jos_chronoforms_ecc puoi anche mettere #__chronoforms_ecc

Forse però mi sfugge qualcosa mi puoi descrivere con quali elementi ed action è realizzato il form di cancellazione.
« Ultima modifica: 01 Mar 2013, 19:03:44 da vales »
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 marialba

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:Filtro per tabella
« Risposta #18 il: 01 Mar 2013, 19:46:19 »
Allora in action vi è:
in on load
  • show html (nel form vi è un text box che fa vedere il record da cancellare e poi il tasto cancella e indietro)
  • db record loader
in on submit
  • costom code (in cui vi è la maledetta qyery che non funziona)
  • redirect user (per tornare all'elenco completo dei record)
l'ordine è quello che vedi

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Filtro per tabella
« Risposta #19 il: 01 Mar 2013, 19:56:40 »
Com'è configurato db record loader ?

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

 



Web Design Bolzano Kreatif