Joomla.it Forum
Componenti per Joomla! => Gestione Form => : bismark2005 08 Jul 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ì:
<?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ì:
<?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?
-
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?
<?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?
-
Un punto della guida lo spiega devi usare questa modalità
$MyRow->nome_campo
dove nome_campo è il nome di un campo che hai usato nella tabella in uso nella query.
-
Grazie Vales. In realtà avevo risolto usando questo codice:
<?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
-
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.
<?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.
-
Grazie Vales per l'aiuto. Ho inserito questo codice:
<?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
-
Sicuramente avevo lasciato dei doppi apici nell'ultima riga.
<?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.
-
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!!!
-
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
-
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.
<?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 ;
}
?>
-
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!!
-
Credo di aver capito. Quel codice era scritto per il componente chronoconnectivity2 che trovi qui nei download.
Altrimenti prova anche questo senza le WHERE
<?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.
-
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
<?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
<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
<?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
<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 :'(
-
Quello che ho detto nel mio precedente post non va bene.
Devi reinserire le where e va trovato l'errore di sintassi della query.
-
Prova questo in Where SQL. Ho fatto una modifica al filtro.
<?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 ;
}
?>
-
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
-
manca la where nell'ultima riga, spero sia solo quella.
<?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 ;
}
?>
-
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?
-
Forse di siamo.
<?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 ;
}
?>
-
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?
-
L'inghippo era che in caso di accesso degli amministratori in filtro non veniva creato e quindi la query non trovandolo dava errore. Ho creato un filtro falso per gli amministratori che visualizza comunque tutti i records ed ora non da più l'errore.
Ricorda di mettere risolto nell'oggetto del primo post.