• User

    hai provato a farti visualizzare il risultato della query, ovvero il contenuto di $risultato?


  • User Attivo

    eccolo pare che l'id lo trova ma solo quello è giusto o no trova altro?

    echo $risultato;

    Resource id #4


  • Bannato User Attivo

    il codice scritto dal collega funzionava? tu hai toccato solo la query? se si, allora mi pare evidente che il problema è nella query. Hai provato a lanciare la query da un client MySQL per verificare cosa ritorna? Se ritorna quello che ti aspetti allora si cerca da qualche altra parte, altrimenti si aggiusta la query.
    Io non sono risciuto a capire molto nel codice anche perchè dentro il forum risulta sformattato e confuso, a naso direi che la tua aggiunta della condizione in AND è sbagliata:
    prima avevi:
    ** cond1=true or cond2=true**
    poi:**
    cond0=true and cond1=true or cond2=true**
    secondo me andrebbe scritto
    ** cond0=true and (cond1=true or cond2=true)**


  • User Attivo

    rilasciava tutti i dip

    io ho aggiunto solo dipendenti.id_dip = $id_dip AND dopo il WHERE

    [php]
    if (isset($_SESSION['id_dip'])){
    $id_dip=$_SESSION['id_dip'];
    $query = "SELECT dipendenti.id_dip, dipendenti.id_liv, dipendenti.matricola, dipendenti.cognome, dipendenti.nome,
    dipendenti.ore_ordinarie, presenze.stato_presenza, presenze.ore_assenza, presenze.ore_presenza,presenze.con_ticket
    FROM dipendenti LEFT JOIN presenze ON (dipendenti.id_dip = presenze.id_dip
    AND presenze.giorno = $giorno
    AND presenze.mese = $mese
    AND presenze.anno = $anno)";
    $query = $query . " WHERE dipendenti.id_dip = $id_dip AND ((UNIX_TIMESTAMP('$anno-$mese-$giorno') - ";
    $query = $query . " UNIX_TIMESTAMP( dipendenti.data_fine_rapp )) <=0)";
    $query = $query . " OR (UNIX_TIMESTAMP( dipendenti.data_fine_rapp) =0)";
    //$query = $query . " order by dipendenti.matricola";

    //Aggiungo il pulsante per il default....
    $arg = $HTTP_SERVER_VARS['REQUEST_URI'];
    $str = "";

    //Spaziatura
    $str = $str . " <tr>\n </tr>\n";
    $str = $str . " <tr>\n </tr>\n";
    $str = $str . " <tr>\n </tr>\n";

    //Apertura della riga nella quale è contenuta
    //la tabella per il form d'inserimento
    $str = $str . " <tr>\n";

    //Apertura del form per l'inserimento delle presenze
    $str = $str . " <form name='inserisci_presenze' method='post' action='ins_pres_exec.php'>\n";

    //Apre la tabella
    $str = $str . " <table border='0' width='630px'>\n";

    //Intestazione della tabella
    $str = $str . " <tr>\n";
    $str = $str . " <td width='10px' class='testa'>Maticola</td>\n";
    $str = $str . " <td class='testa'>Cognome</td>\n";
    $str = $str . " <td class='testa'>Nome</td>\n";
    $str = $str . " <td width='10px' class='testa'>Ore Ordinarie</td>\n";
    $str = $str . " <td width='10px' class='testa'>Stato</td>\n";
    $str = $str . " <td width='40px' class='testa'>Ore di presenza</td>\n";
    $str = $str . " <td width='40px' class='testa'>Ore di Assenza o Straordinario</td>\n";
    $str = $str . " <td width='40px' class='testa'>Con Ticket</td>\n";
    $str = $str . " </tr>\n";

    //Dati della tabella (lista dei dipendenti)
    $conn = apri_connessione();
    $risultato = crea_recordset($query);

    while ($linea = mysql_fetch_array($risultato, MYSQL_ASSOC))
    {
    //Riga dei dati
    $id_dip = $linea["id_dip"];

    $stato_presenza = $linea['stato_presenza'];
    if($stato_presenza=='')
    $stato_presenza = 'NOT_SET';
    $stato_presenza_reale = $linea['stato_presenza'];
    if($stato_presenza_reale=='')
    $stato_presenza_reale = 'NOT_SET';

    if($stato_presenza=='NOT_SET')
    $str = $str . " <tr class='corpo_non_set'>\n";
    else
    $str = $str . " <tr class='corpo'>\n";

    //scorro l'array $linea per salvare il valore del campo
    $str = $str . " <td>" . $linea['matricola'] . "</td>\n";
    $str = $str . " <td>" . $linea['cognome'] . "</td>\n";
    $str = $str . " <td>" . $linea['nome'] . "</td>\n";
    $str = $str . " <td>" . $linea['ore_ordinarie'] . "</td>\n";

    if(($_GET['stato_default']!='') && ($stato_presenza=='NOT_SET'))
    $stato_presenza = $_GET['stato_default'];

    //Disegno l'input box per lo stato e per le ore di assenza
    $str = $str . "<td>".html_optionbox_presenze('stato',$id_dip ,
    $stato_presenza,$linea['ore_ordinarie'])."</td>";
    //Campo ore presenza
    $str = $str . " <td>\n";
    $str = $str . " <input type='text' name='presenza" . $id_dip . "' id='testo" . $id_dip . "' ";
    $str = $str . "value='" . ore_pres_dip($stato_presenza,$linea['ore_presenza'],$linea['ore_ordinarie']) . "' size='10'></input>\n";
    $str = $str . " </td>\n";

    //Campo ore assenza
    $disabilitato = "";
    if($stato_presenza=='PRESENTE')
    $disabilitato = 'disabled';

    $str = $str . " <td>\n";
    $str = $str . " <input $disabilitato type='text' name='assenza" . $id_dip . "' id='aaaa" . $id_dip . "' ";
    $str = $str . "value='" . ore_ass_dip($linea['ore_assenza']) . "' size='10'></input>\n";
    $str = $str . " </td>\n";

    //Fine riga dei dati
    //Campo verifica ticket
    if($stato_presenza_reale=='NOT_SET')
    $con_ticket = 'checked';
    else
    {
    if($linea['con_ticket']=='1') $con_ticket = 'checked';
    else $con_ticket = '';
    }

    $str = $str . " <td>\n";
    $str = $str . " <input type='checkbox' name='conticket" . $id_dip . "' id='conticket" . $id_dip . "' ";
    $str = $str . "value='1' $con_ticket/>\n";
    $str = $str . " </td>\n";
    $str = $str . " </tr>\n";
    }

    //Spaziatura
    $str = $str . " <tr>\n </tr>\n";
    $str = $str . " <tr>\n </tr>\n";
    $str = $str . " <tr>\n </tr>\n";

    //Bottone submit
    $str = $str . " <tr>\n";
    $str = $str . " <td><input type='submit' name='Esegui' value='Applica'></td>\n";
    $str = $str . " </tr>\n";

    //Chiusura della tabella
    $str = $str . " </table>\n";

    //Passo come parametro anche la data
    $str = $str . "<input type='hidden' name='gg' value='" . $giorno . "'>";
    $str = $str . "<input type='hidden' name='mm' value='" . $mese . "'>";
    $str = $str . "<input type='hidden' name='aaaa' value='" . $anno . "'>";

    //Chiusura del form
    $str = $str . " </form>\n";

    //Chiusura della riga nella quale è contenuta
    //la tabella per il form d'inserimento
    $str = $str . " </tr>\n";
    $str = $str . " </table>\n";
    $str = $str . "</tr>\n";
    $str = $str . "</table>";

    chiudi_recordset($risultato);
    chiudi_connessione($conn);

    echo $str;
    ?>

    [/php]

    per trovare un solo dip a questo punto così com'è li trova tutti e non va in errore m a ame serve solo il corrispondente dell ID inviato in sessione


  • Bannato User Attivo

    ti sei perso il pezzo più importante della mia risposta 😉

    te lo traduco, usa le tre righe sotto:
    $query = $query . " WHERE dipendenti.id_dip = $id_dip AND (((UNIX_TIMESTAMP('$anno-$mese-$giorno') - ";
    $query = $query . " UNIX_TIMESTAMP( dipendenti.data_fine_rapp )) <=0)";
    $query = $query . " OR (UNIX_TIMESTAMP( dipendenti.data_fine_rapp) =0))";


  • User Attivo

    nel senso che non essendo esperto mi perdo proprio sulla tua trad... non ci arrivo..
    ergo?

    mi puoi spiegare meglio?

    grazie


  • Bannato User Attivo

    direi che la tua aggiunta della condizione in AND è sbagliata:
    prima avevi:
    ** cond1=true or cond2=true**
    poi:**
    cond0=true and cond1=true or cond2=true**
    secondo me andrebbe scritto
    ** cond0=true and (cond1=true or cond2=true)

    ovvero:
    ** te lo traduco, usa le tre righe sotto:
    $query = $query . " WHERE dipendenti.id_dip = $id_dip AND (((UNIX_TIMESTAMP('$anno-$mese-$giorno') - ";
    $query = $query . " UNIX_TIMESTAMP( dipendenti.data_fine_rapp )) <=0)";
    $query = $query . " OR (UNIX_TIMESTAMP( dipendenti.data_fine_rapp) =0))";

    SOSTITUISCI LE TRE RIGHE SOPRA ALLE CORRISPONDENTI SUL TUO CODICE
    quale parte non è chiara?


  • User Attivo

    ho fatto in questo modo:

    $query = $query . " WHERE ((((UNIX_TIMESTAMP('$anno-$mese-$giorno') - UNIX_TIMESTAMP(dipendenti.data_fine_rapp)) <=0) OR (UNIX_TIMESTAMP(dipendenti.data_fine_rapp) =0))) and dipendenti.id_dip = $id_dip";

    Pare funzionare!

    anche se non ho ancora capito cosa volevi dire...:?


  • Bannato User Attivo

    anche se non ho ancora capito cosa volevi dire...:?
    :eheh:


  • User Attivo

    quelli che hanno avuto pazienza e mi hanno aiutato!:)