Back to top

Autore Topic: Query Modificata  (Letto 10685 volte)

Offline bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Query Modificata
« il: 08 Lug 2011, 22:21:55 »
Salve a tutti, ho modificato la query che si inserisce in chronoconnectivity per fare in modo che gli utenti registrati possano vedere/modificare solo i loro form. Da così:

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }

 if ( !empty(
$cerca) ){
 echo 
" WHERE ".implode(' AND '$cerca);
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".implode(' AND '$cerca);
 }
 else
 {
 echo 
"";
 }
?>


l'ho modificata così:

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('nome','cognome','indirizzo');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }
 
$user=&JFactory::getUser();
 if ( !empty(
$cerca) ){
 echo 
" WHERE =cf_user_id".implode(' AND '$cerca)." AND cf_user_id=".$user->get('id');
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE =cf_user_id".implode(' AND '$cerca)." AND cf_user_id=".$user->get('id');
 }
 else
 {
 echo 
"";
 }
?>


Ma non funziona. Dove sta l'errore?

Offline bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #1 il: 10 Lug 2011, 17:02:29 »
Edit:

Leggendo la guida ChronoConnectivity.Infiniti modi per vedere e gestire i contenuti di Joomla! ho capito che la modifica non va fatta in WHERE SQL ma il codice va inserito in Body. Ma quale codice va inserito esattamente?

Codice: [Seleziona]
<?php
$user 
=& JFactory::getUser();
if(
$user->usertype == 'Super Administrator' || $user->usertype == 'Administrator') {
?>


 <div style="width:100%;overflow-x:scroll;font-size:14px;">
 <table style="margin-top:5px; margin-left:5px; margin-right:5px;">

    <tr>
      <td>{categoria}</td>
      <td>{nome}</td>
      <td>{cognome}</td>
      <td>{indirizzo}</td>
      <td>{cap}</td>
      <td>{comune}</td>
      <td>{provincia}</td>
      <td>{mail}</td>
      <td>{cellulare}</td>
      <td>{fax}</td>
      <td>{sito}</td>
    </tr>

</table>
</div>

<p style= "font-size:14px;">
{edit_record} {delete_record} {new_record}
</p>
[br /]

<?php
} else {
if ((int)
$user->get('id') == cf_user_id){
?>

 <div style="width:100%;overflow-x:scroll;font-size:14px;">
 <table style="margin-top:5px; margin-left:5px; margin-right:5px;">

    <tr>
      <td>{categoria}</td>
      <td>{nome}</td>
      <td>{cognome}</td>
      <td>{indirizzo}</td>
      <td>{cap}</td>
      <td>{comune}</td>
      <td>{provincia}</td>
      <td>{mail}</td>
      <td>{cellulare}</td>
      <td>{fax}</td>
      <td>{sito}</td>
    </tr>

</table>
</div>

<p style= "font-size:14px;">
{edit_record} {delete_record} {new_record}
</p>
[br /]

<?php
}
}
?>

Come posso recuperare i valori ritornati da Chronocennectivity in uno snippet di codice? Ho visto che in Html i valori li passa con ad esempio {nome} e in php?
« Ultima modifica: 10 Lug 2011, 18:45:20 da bismark2005 »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #2 il: 16 Lug 2011, 05:11:15 »
Un punto della guida lo spiega devi usare questa modalità

Codice: [Seleziona]
$MyRow->nome_campo
dove nome_campo è il nome di un campo che hai usato nella tabella in uso nella 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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #3 il: 16 Lug 2011, 08:36:25 »
Grazie Vales. In realtà avevo risolto usando questo codice:

Codice: [Seleziona]
<?php
$user 
=& JFactory::getUser();
if(
$user->usertype == 'Super Administrator' || $user->usertype == 'Administrator') {
?>


 <div style="width:100%;overflow-x:scroll;font-size:14px;">
 <table style="margin-top:5px; margin-left:5px; margin-right:5px;">

    <tr>
      <td>{categoria}</td>
      <td>{nome}</td>
      <td>{cognome}</td>
      <td>{indirizzo}</td>
      <td>{cap}</td>
      <td>{comune}</td>
      <td>{provincia}</td>
      <td>{mail}</td>
      <td>{cellulare}</td>
      <td>{fax}</td>
      <td>{sito}</td>
    </tr>

</table>
</div>

<p style= "font-size:14px;">
{edit_record} {delete_record} {new_record}
</p>

<?php
} else {
if (
$user->get('id') == $MyRow->cf_user_id){
?>

 <div style="width:100%;overflow-x:scroll;font-size:14px;">
 <table style="margin-top:5px; margin-left:5px; margin-right:5px;">

    <tr>
      <td>{categoria}</td>
      <td>{nome}</td>
      <td>{cognome}</td>
      <td>{indirizzo}</td>
      <td>{cap}</td>
      <td>{comune}</td>
      <td>{provincia}</td>
      <td>{mail}</td>
      <td>{cellulare}</td>
      <td>{fax}</td>
      <td>{sito}</td>
    </tr>

</table>
</div>

<p style= "font-size:14px;">
{edit_record} {delete_record} {new_record}
</p>


<?php
}
}
?>

Ho passato 3 giorni e 3 notti per risolvere, (grazie anche all'aiuto di mmeloni che ringrazio di cuore). Ora sembra funzionare tutto tranne una cosa.
C'è un problema di paginazione. Se entra l'amministratore tutto ok, mentre se entra l'utente registrato vede le sue schede con una paginazione non corretta. Mi spiego:

La paginazione in fondo alla pagina è questa:

<< Inizio Prec.   1 2 3 4 5 6 ... Succ. Fine >>

L'utente registrato vede le sue schede non dalla prima pagina, ma ad esempio 3 schede le vede nella 2 pagina, 8 schede le vede nella quarta pagina ecc ecc. E' come se il sito "ricordasse" la pagina esatta dove l'utente registrato ha inserito la scheda.
Grazie

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #4 il: 16 Lug 2011, 09:09:07 »
Devi intervenire anche nel where sql per fare in modo che quando entra l'utente registrato vede solo i suoi dati filtrati da un opportuno filtro. Non mi sembra che quello realizzato sia corretto.

Prova questo.

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('nome','cognome','indirizzo');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }
 
$user=&JFactory::getUser();
 if ( !empty(
$cerca) ){
 echo 
" WHERE ".implode(' AND '$cerca)." AND cf_user_id=".$user->get('id');
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".implode(' AND '$cerca)." AND cf_user_id=".$user->get('id');
 }
 else
 {
 echo 
" WHERE cf_user_id=".$user->get('id'); ";
 }
?>



Se poi vuoi che gli amministratori vedano tutto vanno inserite ulteriori modifiche per gestire quella situazione.
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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #5 il: 16 Lug 2011, 10:02:49 »
Grazie Vales per l'aiuto. Ho inserito questo codice:

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }
 
$user=&JFactory::getUser();
 if ( !empty(
$cerca) ){
 echo 
" WHERE ".implode(' AND '$cerca)." AND cf_user_id=".$user->get('id');
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".implode(' AND '$cerca)." AND cf_user_id=".$user->get('id');
 }
 else
 {
 echo 
" WHERE cf_user_id=".$user->get('id'); ";
 }
?>

ma nel front end mi dice:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
 Parse error:  syntax error, unexpected $end, expecting T_VARIABLE ' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michela
 Parse error:  syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\xampp\htdocs\provasito\components\com_chronoconnectivity\libraries\connection.php(168) : eval()'d code on line 31

Io voglio cher se entra l'utente registrato veda solo le sue schede se entra un super administrator veda tutto

Grazie ancora
« Ultima modifica: 16 Lug 2011, 13:11:59 da bismark2005 »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #6 il: 16 Lug 2011, 10:26:52 »
Sicuramente avevo lasciato dei doppi apici nell'ultima riga.

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }
 
$user=&JFactory::getUser();

if(
$user->usertype == 'Super Administrator' || $user->usertype == 'Administrator') {
$filtro=" AND cf_user_id=".$user->get('id'); ;
} else {
$filtro="";
}


 if ( !empty(
$cerca) ){
 echo 
" WHERE ".implode(' AND '$cerca).$filtro;
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".implode(' AND '$cerca).$filtro;
 }
 else
 {
 echo 
$filtro ;
 }
?>


E' da poi valutare dove mettere il filtro se all'inizio della where e non in fondo come ora perchè in caso di ricerca vuota c'è la AND che da problemi.
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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #7 il: 16 Lug 2011, 10:37:01 »
Vales aspetta un attimino, dove sono questi doppi apici? Il blocco di codice del filtro qual è esattemente?

Ps: Io ho iniziato a studiare questo manuale : http://www.hoepli.it/libro/sviluppare-siti-web-con-php-6-apache-mysql/9788820337889.asp

sono ai primi capitoli, però se devo modifcare quanto detto da te non ci capisco ancora nulla. Quanto tempo occorre per acquisire una buona manualità?

Che frustrazione!!!



Offline bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #8 il: 16 Lug 2011, 10:48:35 »
Con il nuovo codice sembra gli errori si siano ridotti. Ora mi dice:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND cf_user_id=62' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michela AND cf_user_id=62

E'm sicuramente un errore di sintassi mysql

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #9 il: 16 Lug 2011, 12:48:35 »
Non ti scoraggiare, ci siamo passati tutti. E' il problema della AND a cui accennavo va  ancora modificato e c'erano altri errori di sintassi.

Prova questo.

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }

$user=&JFactory::getUser();

if(
$user->usertype == 'Super Administrator' || $user->usertype == 'Administrator') {
$filtro="cf_user_id=".$user->get('id');
} else {
$filtro="";
}


 if ( !empty(
$cerca) ){
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 }
 else
 {
 echo 
$filtro ;
 }
?>




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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #10 il: 16 Lug 2011, 13:09:55 »
Adesso mi fa un problema strano. Se entro come super admin nel front end mi dice:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=62' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michela cf_user_id=62
 Warning:  Invalid argument supplied for foreach() in C:\xampp\htdocs\provasito\components\com_chronoconnectivity\libraries\connection.php on line 300
 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=62' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michela cf_user_id=62

Se entro come utente registrato mi fa vedere solo le schede dell'utente registrato ma con il problema della paginazione di prima.

Mah!!
« Ultima modifica: 16 Lug 2011, 13:11:34 da bismark2005 »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #11 il: 16 Lug 2011, 13:49:17 »
Credo di aver capito. Quel codice era scritto per il componente chronoconnectivity2 che trovi qui nei download.

Altrimenti prova anche questo senza le WHERE

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }

$user=&JFactory::getUser();

if(
$user->usertype == 'Super Administrator' || $user->usertype == 'Administrator') {
$filtro="cf_user_id=".$user->get('id');
} else {
$filtro="";
}


 if ( !empty(
$cerca) ){
 echo 
$filtro.implode(' AND '$cerca);
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
$filtro.implode(' AND '$cerca);
 }
 else
 {
 echo 
$filtro ;
 }
?>



Quanto detto sopra non va bene il sito è con chronoconnerctivity originale.

« Ultima modifica: 17 Lug 2011, 16:06:50 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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #12 il: 16 Lug 2011, 14:35:15 »
Fatto ma mi restituisce lo stesso errore. Se entro come super admin mi dice:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=62' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michelangelo cf_user_id=62You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=62' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michelangelo cf_user_id=62

Se entro come utente registrato tutto ok, ma con il problema della paginazione. Ho l'ultima versione di joomla 1.5.23 e la vesrione di chronocennectivity dovrebbe essere la V2_RC3 o comunque quella usata nella guida Chronoforms e Chronocennectivity.L'unione fa la forza

Di seguito riporto il codice che ho scritto nelle varie sezioni:

WHERE SQL
Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }

$user=&JFactory::getUser();

if(
$user->usertype == 'Super Administrator' || $user->usertype == 'Administrator') {
$filtro="cf_user_id=".$user->get('id');
} else {
$filtro="";
}


 if ( !empty(
$cerca) ){
 echo 
$filtro.implode(' AND '$cerca);
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
$filtro.implode(' AND '$cerca);
 }
 else
 {
 echo 
$filtro;
 }
?>

HEADER
Codice: [Seleziona]
<table style="font-weight:600; font-size:14px;">
  <tbody>
    <tr>
      <td>Cerca per Categoria:</td>
      <td><input type="text" name="categoria" /></td>
      <td>Cerca per Nome:</td>
      <td><input type="text" name="nome" /></td>
    </tr>
     <tr>
      <td>Cerca per Cognome:</td>
      <td><input type="text" name="cognome" /></td>
      <td>Cerca per Provincia:</td>
      <td><input type="text" name="provincia" /></td>
    </tr>
     <tr>
      <td>Cerca per Comune:</td>
      <td><input type="text" name="comune" /></td>
      <td>Cerca per Cap:</td>
      <td><input type="text" name="cap" /></td>
    </tr>
     <tr>
      <td>Cerca per Cellulare:</td>
      <td><input type="text" name="cellulare" /></td>
      <td>Cerca per Mail:</td>
      <td><input type="text" name="mail" /></td>
    </tr>
    <tr>
       <td>Cerca per Sito:</td>
       <td><input type="text" name="sito" /></td>
       <td>Cerca per Telefono:</td>
       <td><input type="text" name="fisso" /></td>
    </tr>

    </tbody>
</table>
[br /]
<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;">Per visualizzare tutte le schede lanciare la ricerca con tutti i campi vuoti.</p>

BODY

Codice: [Seleziona]
<?php
$user 
=& JFactory::getUser();
if(
$user->usertype == 'Super Administrator' || $user->usertype == 'Administrator') {
?>


 <div style="width:100%;overflow-x:scroll;font-size:14px;">
 <table style="margin-top:5px; margin-left:5px; margin-right:5px;">

    <tr>
      <td>{categoria}</td>
      <td>{nome}</td>
      <td>{cognome}</td>
      <td>{indirizzo}</td>
      <td>{cap}</td>
      <td>{comune}</td>
      <td>{provincia}</td>
      <td>{mail}</td>
      <td>{cellulare}</td>
      <td>{fax}</td>
      <td>{sito}</td>
    </tr>

</table>
</div>

<p style= "font-size:14px;">
{edit_record} {delete_record} {new_record}
</p>

<?php
} else {
if (
$user->get('id') == $MyRow->cf_user_id){
?>

 <div style="width:100%;overflow-x:scroll;font-size:14px;">
 <table style="margin-top:5px; margin-left:5px; margin-right:5px;">

    <tr>
      <td>{categoria}</td>
      <td>{nome}</td>
      <td>{cognome}</td>
      <td>{indirizzo}</td>
      <td>{cap}</td>
      <td>{comune}</td>
      <td>{provincia}</td>
      <td>{mail}</td>
      <td>{cellulare}</td>
      <td>{fax}</td>
      <td>{sito}</td>
    </tr>

</table>
</div>

<p style= "font-size:14px;">
{edit_record} {delete_record} {new_record}
</p>


<?php
}
}
?>

FOOTER
Codice: [Seleziona]
<p>{pagination}</p>
[br /][br /]

Il cf_user_id=62 dovrebbe essere il super amministratore

Ps: E che volevo fare da solo!!!! Ci avrei messo 10-15 anni allo stadio attuale  :'(


« Ultima modifica: 16 Lug 2011, 14:37:07 da bismark2005 »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #13 il: 17 Lug 2011, 16:05:29 »
Quello che ho detto nel mio precedente post non va bene.

Devi reinserire le where e va trovato l'errore di sintassi della 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 vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #14 il: 17 Lug 2011, 16:18:24 »
Prova questo in Where SQL. Ho fatto una modifica al filtro.

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }

$user=&JFactory::getUser();

if((
$user->usertype == 'Super Administrator') || ($user->usertype == 'Administrator')) {
$filtro=""; } else {
$filtro="cf_user_id='".$user->get('id')."'"; }


 if ( !empty(
$cerca) ){
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 }
 else
 {
 echo 
$filtro ;
 }
?>


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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #15 il: 17 Lug 2011, 17:36:36 »
Grazie ancora Vales. Credo che occorra ancora una piccola "limatura". Ora se entro come super admin tutto ok, se entro come utente registrato mi restituisce l'errrore che mi dava prima come super administrator e cioè:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='76'' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michela cf_user_id='76'
 Warning:  Invalid argument supplied for foreach() in C:\xampp\htdocs\provasito\components\com_chronoconnectivity\libraries\connection.php on line 300
 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='76'' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michelangelo cf_user_id='76'

Grazie

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #16 il: 17 Lug 2011, 17:55:28 »
manca la where nell'ultima riga, spero sia solo quella.

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }

$user=&JFactory::getUser();

if((
$user->usertype == 'Super Administrator') || ($user->usertype == 'Administrator')) {
$filtro=""; } else {
$filtro="cf_user_id='".$user->get('id')."'"; }


 if ( !empty(
$cerca) ){
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 }
 else
 {
 echo 
" WHERE ".$filtro ;
 }
?>


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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #17 il: 17 Lug 2011, 18:16:24 »
Utente registrato adesso ok compresa paginazione. Super admin sempre con questo maledetto messaggio. Se funziona l'uno non funzione l'altro:-(

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michelangelo WHERE
 Warning:  Invalid argument supplied for foreach() in C:\xampp\htdocs\provasito\components\com_chronoconnectivity\libraries\connection.php on line 300
 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 SQL=SELECT count(*) FROM jos_chronoforms_form_michelangelo WHERE


E' più dura di quanto pensavo!!!

Giusto per curiosità...io nel seguire la tua guida non ho creato la copia del form in quanto non mi serviva. Mica potrebbe c'entrarci questo?
« Ultima modifica: 17 Lug 2011, 18:18:06 da bismark2005 »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Query Modificata
« Risposta #18 il: 17 Lug 2011, 19:35:28 »
Forse di siamo.

Codice: [Seleziona]
<?php
 $session 
=& JFactory::getSession('ricerca');
 
$search_array = array('categoria','nome','cognome','provincia','comune','cap','cellulare','mail','sito','fisso','cf_user_id');
 
$cerca = array();
 foreach ( 
$search_array as $search ) {
 
$value JRequest::getVar($search'' 'post');
 if ( 
$value ) {
 
$cerca[] = " `$search` LIKE '%$value%' ";
 }
 }
 
 if (empty(
$cerca) and (JRequest::getVar('submit','no','POST')=="Trova")) {
 
$session->set('cerca','0','ricerca');
 
JRequest::setVar('limitstart',0,'Get');
 }

$user=&JFactory::getUser();

if((
$user->usertype == 'Super Administrator') || ($user->usertype == 'Administrator')) {
$filtro="cf_user_id<>'0'";
 } else {
$filtro="cf_user_id='".$user->get('id')."'"; }


 if ( !empty(
$cerca) ){
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 
$session->set('cerca',$cerca,'ricerca');          
 }

 elseif ((
JRequest::getVar('submit','no','POST')<>"Trova") and ($session->get('cerca',0,'ricerca')<>0))
{
 
$cerca=$session->get('cerca',0,'ricerca');
 echo 
" WHERE ".$filtro.implode(' AND '$cerca);
 }
 else
 {
 echo 
" WHERE ".$filtro ;
 }
?>


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 bismark2005

  • Abituale
  • ****
  • Post: 1158
    • Mostra profilo
Re:Query Modificata
« Risposta #19 il: 17 Lug 2011, 20:23:45 »
Grande Vales. Sembra che sia tutto ok. Controllo meglio questa sera o domani mattina ma dovrebbe essere tutto ok.

Giusto per curisiosità...era difficile la soluzione? Dove stava l'inghippo?
« Ultima modifica: 17 Lug 2011, 20:27:25 da bismark2005 »

 



Web Design Bolzano Kreatif