• User

    Aiuto! Non riesco a richiamare una variabile

    Ciao a tutti. Vi chiedo un aiutino in merito ad una variabile 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 mysql 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>[/PHP]
    Fin qui tutto OK.
    Successivamente devo richiamare la variabile $campo_monit diverse volte e questo funziona sempre tranne in un caso.
    Di seguito riporto il codice dove non mi richiama la variabile:
    [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);
    .
    .
    .[/PHP]
    Da come potete leggere richiamo la variabile $campo_monit all'interno di una SELECT ma mi genera questo errore:

    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 tante parti 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


  • User Attivo

    Ciao samurai.sette
    forse mi sbaglio ma dall'errore in query sembra che non vengano richiamate le variabili $minore e $maggiore

    syntax to use near 'WHERE id>= AND id<= ORDER BY id' at line 1

    se noti il problema è su quel punto della query


  • User

    Ciao PietroR. Grazie per l'aiuto.
    L'errore non è lì. Ti spiego il perchè: se provo a sostituire $campo_monit con il nome di una tabella funziona tutto perfettamente!!!.
    Un'altra cosa: ho scritto questo comando: var_dump($campo_monit) e mi restituisce NULL. Quindi credo che $campo_monit abbia valore nullo.
    Cosa ne pensi?
    Ciao, grazie.


  • User Attivo

    Ciao, hai risolto?
    scusami se ti ho mandato fuori strada ma leggendo meglio l'errore sembra che si trovi in una query che non è riportata nel codice, perché parla di >= e <=, non in quella che ti ho segnalato io..