hai provato a farti visualizzare il risultato della query, ovvero il contenuto di $risultato?
batmark
@batmark
Post creati da batmark
-
RE: Query vuota o con errore
-
RE: Query vuota o con errore
Allora:
partendo dal codice del tuo collega prova a sostituire il pezzo:
[php]//Query
//$query = "Select id_dip, matricola,cognome, nome,ore_ordinarie from dipendenti order by matricola";
$query = "SELECT dipendenti.id_dip, 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 ((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";
[/php]con:[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";
}else{
$query = "SELECT dipendenti.id_dip, 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 ((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";
}[/php]
in questo modo se nella sessione c'è id_dip il codice cerca nel db solo i dati relativi a quel dipendente, che era la tua idea originaria...Spero di esserti stato utile.
-
RE: Query vuota o con errore
Il problema sta sicuramente nel fatto che in $risultato non c'è quello che ti aspetti che ci sia;
controlla che usi bene la connessione che ti restituisce la funzione 'apri_connessione'
ho notato poi una cosa che non mi quadra: nelle funzione trovaiddip fai questa cosa:
$risultato = crea_recordset("select id_dip from dipendenti where id_dip = '" . $id_dip . "'"
ovvero cerchi nel database una cosa che già conosci: stai chiedendo a mysql l'id del dipendente che ha id=id_dip: è come se chiedessi 'che numero ha il dipendente numero 4?'
se non riesci a risolvere postami per bene il codice della parte principale che gli do uno sguardo più approfondito
-
RE: Query vuota o con errore
A questo punto devi postarmi anche il codice della funzione crea_recordset...
-
RE: problema richiamare foto in base ad una $variabile
Può darsi che ci sia un errore nella query, prova ad aggiungere un controllo sul risultato di mysql_query prima del primo ciclo while:
if(!$query) {
echo "Errore db";
}
così ti rendi subito conto se la query è corretta Saluti
-
RE: Query vuota o con errore
Beh, ad un primo sguardo ti dico che c'è un errore quando utilizzi la funzione fetch_array: infatti la definizione della funzione (alla riga 31) prevede un solo parametro in ingresso, mentre nel ciclo while la richiami con 2 parametri.
Inoltre, $risultato non può essere una funzione: Il carattere $ è riservato per le variabili; se hai una funzione che si chiama 'risultato' dovresti utilizzarla in questo modo:
while ($linea = fetch_array(risultato(), MYSQL_ASSOC))
fermo restando che devi correggere la funzione fetch_array come ti ho detto all'inizio. Ciao
-
RE: Classi per invio mail
Prova a vedere su http://www.phpclasses.org se c'è qualcosa che fa al caso tuo.
Mi sembra che PHP non abbia funzioni di questo tipo.
-
RE: MYSQL 5 - Triggers
Ciao,
questa roba mi sembra molto interessante!
Secondo voi sarebbe utile/possibile utilizzare delle stored procedures per mantenere la consistenza del database?
Ad esempio:
se voglio cancellare un record da una tabella e alcuni dei campi di questo record sono collegati ad altri campi di altre tabelle, una stored potrebbe aiutarmi in modo automatico a "sistemare" anche tutti gli altri campi delle tabelle collegate?Grazie delle risposte
Saluti a tutti
-
Gestione delle eccezioni in PHP
Salve,
non mi è ben chiaro il discorso delle eccezioni in PHP. Mi spiego:
supponiamo che io debba richiamare la funzione b() dall'interno della funzione a(); la funzione b() fa uso a sua volta di una terza funzione c() la quale in caso di errore lancia un'eccezione. All'interno di b(), la chiamata alla funzione c() è inserita all'interno di un blocco try().
E' possibile gestire l'eccezione lanciata da c() nella funzione a() invece che in b()?
Voglio dire: se inserisco il blocco catch nella funzione a() invece che in b(), la cosa funziona lo stesso? Oppure devo inserire il blocco catch anche in b() e rilanciare l'eccezione dall'interno di tale blocco?Spero di essere stato abbastanza chiaro
Saluti
-
RE: Differenza fra 2 orari
Dai uno sguardo qui: http://database.html.it/articoli/leggi/935/funzioni-di-data-e-tempo-con-mysql/3/
Sono le operazioni sulle date che possono essere fatte direttamente da MySQL.
-
RE: Differenza fra 2 orari
@Max85 said:
print(date("G:i:s", $differenza));
Questa istruzione ti dice quanto tempo è trascorso dalla mezzanotte del 01/01/1900.
Il calcolo del tempo trascorso lo devi fare tu.
Guardati l'esempio che ti ho fatto per capire cosa intendo.Inoltre, se stai usando MySQL come database, dovrebbero esserci delle operazioni per le date che forse ti possono essere utili.
Se ho un pò di tempo le cerco e te le posto... in ogni caso puoi cominciare a vederti la documentazione su MySQL (penso che anche altri database permettano di fare questo tipo di operazioni cmq).Ciao
-
RE: Differenza fra 2 orari
Ciao,
innanzitutto potresti provare ad usare la funzione time() al posto di strtotime(date("H:i:s")); così hai già un valore intero...
In questo modo hai la differenza tra le due date in termini di secondi, se vuoi trasformarli in giorni, ore e minuti devi far fare i calcoli alla funzione; se usi date() e gli passi $differenza ottieni una nuova data che, se ho capito bene, non c'entra con quello che vuoi fare tu.
Esempio:
$minuti = floor($differenza/60);
$ore = floor($differenza-($minuti*60))/3600
e così via...Ciao
-
E' possibile conoscere la funzione chiamante dall'interno della funzione chiamata?
Salve a tutti,
la mia domanda è semplice ma la risposta non sono riuscito a trovarla.
Come recita il titolo, mi piacerebbe sapere se esiste un modo in php per sapere qual è la funzione chiamante dall'interno della funzione chiamata.
Grazie in anticipo a tutti quelli che posteranno.
Saluti