- Home
- Categorie
- Coding e Sistemistica
- Coding
- Verifica disponibilità di un record in determinate date.
-
Ciao, grazie per aver risposto...
ho provato, ma ottengo il risultato opposto. Adesso inserisce i dati anche quando non dovrebbe. Hai qualche altra soluzione? Te ne sarei grato.
-
Mi devi scusare, bisogna invertire il contenuto dell'if con il contenuto dell'else, ovvero:
if ($num==0){
echo($id." è occupato dal: ".$dal." al: ".$al." " );
}else{
$query_ins="INSERT INTO calendario_lavori (id_mezzi, dal, al) VALUES ('$id', '$dal', '$al')";
$results_ins = mysql_query($query_ins) or die (mysql_error());
echo ("ok");}
}
diventa:
if ($num==0){
$query_ins="INSERT INTO calendario_lavori (id_mezzi, dal, al) VALUES ('$id', '$dal', '$al')";
$results_ins = mysql_query($query_ins) or die (mysql_error());
echo ("ok");
}else{
echo($id." è occupato dal: ".$dal." al: ".$al." " );
}Questo perchè la query di insert va effettuata quando non ci sono record relativi alla query di selezione rispetto al periodo.
-
Avevo già provato a mettere la condizione $num > 0 ottenendo lo stesso risultato... ma continua a non funzionare.
Adesso mi chiedo, ma può essere che sia la query SELECT ad avere problemi?
-
Se fosse sbagliata la select ti stamperebbe l'errore relativo, visto che c'è die(mysql_error());
-
Problemi a livello di logica, che non trova niente... Secondo me dovrebbe andare bene per la ricerca che deve fare, secondo te?
-
Posta la struttura della tabella calendario_lavori (potresti postare la query per la creazione)
così eseguo qualche test.
-
Grazie per l'aiuto...
[PHP]CREATE TABLE IF NOT EXISTS
calendario_lavori
(
id_calendario
int(3) NOT NULL AUTO_INCREMENT,id_mezzi
int(3) NOT NULL,desc_cantiere
varchar(50) NOT NULL,dal
date NOT NULL,al
date NOT NULL,conferma
int(1) NOT NULL,PRIMARY KEY (
id_calendario
),KEY
id
(id_calendario
)
) TYPE=MyISAM AUTO_INCREMENT=1 ;[/PHP]
-
Allora ci sono in effetti ci sono 2 errori nella query di SELECT, uno è la mancanza di apici quando esegui il confronto con le date, mentre l'altro è relativo al confronto delle date, prova con la query seguente:
$query = "SELECT * FROM calendario_lavori
WHERE id_mezzi='$id'
AND (" . $dal . " <= dal AND
" . $dal . ">= al) OR
(" . $al . " <= dal AND " . $al . ">= al)";
-
niente da fare...:x
-
Allora prova a postare il codice che hai aggiornato e posta anche i dati che utilizzi per fare il test.