Allora, l'errore l'ho trovato e sta nella stringa SQL. Praticamente manca AND tra le condizioni della clausola WHERE, difatti la stringa esatta è la seguente:
$query = "SELECT * FROM cdg_chronoforms_data_new_turno WHERE data=".$form->data['d']." AND turno=".$form->data['t']." AND addetto=".$form->data['a'];
quindi il codice finale è il seguente:
<?php
if ( $form->data['task'] == 'show') {
$query = "SELECT * FROM cdg_chronoforms_data_new_turno WHERE data=".$form->data['d']." AND turno=".$form->data['t']." AND addetto=".$form->data['a'];
$ris=mysql_query($query);
echo "<p style='background-color:#eeeeee'><b>DATA : </b>".$form->data['d']."<b> TURNO : </b>".$form->data['t']."<b> ADDETTO : </b>".$collega."</p>";
if($ris && mysql_num_rows($ris)>0){
while ($riga = mysql_fetch_array($ris))
{
echo $riga['cf_id']." ";
echo $riga['data']." ";
echo $riga['turno']." ";
echo $riga['addetto']." ";
echo $riga['note']."<br>";
}
} else
echo "nessun risultato";
}
?>
Però, continua ad esserci un problema. La pagina non mi restituisce errore ma non mi visualizza i risultati che voglio, infatti mi dice "nessun risultato" nonostante la query fatta sia positiva.
Io presume che l'errore sia sui parametri passati come variabili alle condizioni della clausola WHERE e cioè $form->data['d'], $form->data['t'], $form->data['a'] che altro non sono che i valori passati come parametri dalla form precedente a questa, difatti il linkche richiama questa form è il seguente:
index.php/component/chronoforms/?chronoform=show_turno_aperto&task=show&d=21/07/2013&t=07/13&a=esposito
e come si può vedere i valori dei parametri passati sono corretti ma la query non restituisce nulla.
Se provo a sostituire nella stringa SQL i valori effettivi alle variabili $forms->data[''], la query funziona corretamente. Quindi se la stringa SQL è la seguente:
$query = "SELECT * FROM cdg_chronoforms_data_new_turno WHERE addetto='esposito' AND turno='07/13' AND data='21/07/2013' ORDER BY cf_id ASC ";
la query funziona, invece con la stringa SQL
$query = "SELECT * FROM cdg_chronoforms_data_new_turno WHERE data=".$form->data['d']." AND turno=".$form->data['t']." AND addetto=".$form->data['a'];
non funziona, nonostante i parametri sono passati in maniera corretta.
Qualcuno sa spiegarmi il problema?