[PHP] Aiuto! Non riesco a richiamare una variabile

samurai.sette

Utente Attivo
17 Dic 2015
228
6
18
Ciao a tutti. Vi chiedo un aiutino in merito ad una variabile POST che non riesco a richiamare nel mio codice.
Quello che ho fatto è questo.
All'interno di un drop-down box ho inserito una lista di nomi contenuta in una tabella tramite questo codice:
PHP:
<select name="scelta_tab" style="width: 170px">
        <?php     
        // leggo i valori di username e password
          $user = $_SESSION['username'];
          $pass = $_SESSION['password'];
        // seleziono "nome_committente" dalla tabella 'utenti' e faccio la query
          $committente = mysql_query("SELECT nome_committente FROM utenti WHERE username = '$user' AND password = '$pass' ORDER BY id");
          $rec_estr = mysql_fetch_assoc ($committente);
          $commesse = $rec_estr[nome_committente]."_"."tabelle";
        // seleziono "lavori" dalla tabella che prende il nome da $commesse a cui si aggiunge "_" e "lavori"
          $drop_monit = mysql_query("SELECT nomi_tabelle FROM $commesse ORDER BY id");
          $campo_monit = $_POST['scelta_tab'];
        // inserisco all'interno del drop-down box la scritta "Effettua una scelta" e poi tutti i lavori che l'utente può selezionare
          if ($campo_monit == '')
          {
            echo '<option>Effettua una scelta</option>';
          }
          else
          {
            echo '<option>' .$campo_monit.'</option>';
          }
          while ($record = mysql_fetch_array($drop_monit))
          {
            $nomi_tabelle = $record ['nomi_tabelle'];
            echo '<option>' .$nomi_tabelle.'</option>';
          }
        ?>
        </select>
Fin qui tutto OK.
Successivamente devo richiamare la variabile $campo_monit diverse volte e questo funziona sempre tranne in un caso.
Nel codice scrivo così:
PHP:
if (isset ($_POST['aggiorna']))
{
// leggo i valori di "data_inizio" e "data_fine" eliminando i trattini
$min=$_POST['data_inizio'];
$min1 = substr($min,0,4);
$min2 = substr($min,5,2);
$min3 = substr($min,8,2);
$minore = $min1.$min2.$min3;

$max=$_POST['data_fine'];
$max1 = substr($max,0,4);
$max2 = substr($max,5,2);
$max3 = substr($max,8,2);
$maggiore = $max1.$max2.$max3;
      
if ($min == "Effettua una scelta" OR $max == "Effettua una scelta")
exit();
if ($campo_x == "Effettua una scelta" OR $campo_y == "Effettua una scelta")
exit();

//trovo il min id e il max id
var_dump($campo_monit);
$query=mysql_query("SELECT MIN(id) AS min, MAX(id) AS max FROM $campo_monit WHERE $campo_data=$minore OR $campo_data=$maggiore");
$riga=mysql_fetch_assoc($query);
.
.
.
Da come potete leggere richiamo la variabile $campo_monit all'interno di una SELECT ma mi genera questo errore.
Codice:
NULL
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\...
Query fallita: 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 'WHERE id>= AND id<= ORDER BY id' at line 1
La cosa che mi lascia sconcertato è che quella variabile la richiamo in tanti punti del codice, sia prima che dopo il punto in cui mi genera l'errore e non ho nessun tipo di problema!!!
Qualcuno ha un'idea del perchè mi genera l'errore?
Ciao,grazie
 

bubino8

Utente Attivo
28 Apr 2017
343
19
18
27
BZ
Pero l'errore dice che è nella sintassi della query non che non hai la variabile controlla la sintassi e fai stampare a video anche la query cosi vedi come la esegue.
 

marino51

Utente Attivo
28 Feb 2013
2.912
162
63
Lombardia
PHP:
$query=mysql_query("SELECT MIN(id) AS min, MAX(id) AS max FROM $campo_monit WHERE $campo_data=$minore OR $campo_data=$maggiore");
se $minore e $maggiore sono date, vanno racchiuse tra apici

poi forse, ... ma forse
PHP:
WHERE $campo_data=$minore OR $campo_data=$maggiore

va scritto

WHERE $campo_data BETWEEN $minore AND $maggiore

a parte gli apici che lascio a te sistemare, giusto come esercizio