View Full Version : esame imminente: aiuto per PHP!!!!
l3golas84
24-07-2006, 11:44
Ringrazio innanzitutto chi legge per l'attenzione. Ho un esame in cui presento un progetto in PHP, l'unico problema è che ho un warning fastidioso... ecco il codice:
function check_reservation(){
global $db_tabella5;
global $db_database;
global $Connection;
$query ='SELECT Username FROM '.$db_tabella5.' WHERE Checking_in BETWEEN # "'.$_POST['hotel_anno'].'-'.$_POST['hotel_mese'].'-'.$_POST['hotel_giorno'].'"# AND # "'.$_POST['hotel_anno2'].'-'.$_POST['hotel_mese2'].'-'.$_POST['hotel_giorno2'].'"#';
$ris=mysql_db_query($db_database ,$query,$Connection);
$NUMROWS = mysql_num_rows($ris); <-- il warning si riferisce qua
if ($NUMROWS<5)
return TRUE;
else
return FALSE;
}
Ora il warning che mi dà è:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Qual è il problema??? AIUTOOOOOOOOOO
$query ='SELECT Username FROM '.$db_tabella5.' WHERE Checking_in BETWEEN # "'.$_POST['hotel_anno'].'-'.$_POST['hotel_mese'].'-'.$_POST['hotel_giorno'].'"# AND # "'.$_POST['hotel_anno2'].'-'.$_POST['hotel_mese2'].'-'.$_POST['hotel_giorno2'].'"#';
$ris=mysql_db_query($db_database ,$query,$Connection);
$NUMROWS = mysql_num_rows($ris); <-- il warning si riferisce quaVerifica se $ris è FALSE (che indica che la query è fallita per qualche motivo).
l3golas84
24-07-2006, 12:13
si $ris è FALSE. Quale può essere la causa?? la query è giusta??
si $ris è FALSE. Quale può essere la causa?? la query è giusta??Non sono espertissimo di SQL/MySQL :( ma il cancelletto # segna l'inizio di un commento ... sicuro che servono??
l3golas84
24-07-2006, 12:26
si perchè è una stringa sql ed è richiesto... inoltre il compilatore non lo segna come commento... provo a cambiare il tipo di query e vediamo...
l3golas84
24-07-2006, 12:27
dimenticavo... grazie dell'aiuto :)
si perchè è una stringa sql ed è richiesto... inoltre il compilatore non lo segna come commento... provo a cambiare il tipo di query e vediamo...Sì ma la query verrebbe fuori come:
SELECT Username FROM tabella WHERE Checking_in BETWEEN # ....
Quello che c'è dopo il cancelletto è preso come commento.
l3golas84
24-07-2006, 12:40
HAI RAGIONE!!!!!!!!!!! Grazie mille problema risolto.... senza # funziona.... mi hai salvato!!
l3golas84
25-07-2006, 13:19
Un ultimo problema... Ho cambiato la query della funzione precedente in questa:
$query ='SELECT Username FROM '.$db_tabella5.' WHERE "'.$_POST['hotel_anno'].'-'.$_POST['hotel_mese'].'-'.$_POST['hotel_giorno'].'" BETWEEN Checking_in AND Checking_out HAVING Room='.$_POST['room'].'';
questa query mi da il solito warning ... perchè??
senza having e quello che viene dopo funziona... Grazie per l'aiuto
Ah una precisazione per andbin... in alcuni SQL il carattere # viene utilizzato per delimitare una data (ad es. '#14/02/2006#'). Probabilmente MySQL non è uno di questi, ma con altri DBMS la precedente query potrebbe risultare esatta. ;)Grazie della precisazione. Questo non lo sapevo ... comunque sul manuale del MySQL ho letto che i commenti possono essere # ... oppure -- .... oppure ancora /* ... */
Quindi è indubbio che quella query non poteva funzionare con MySQL.
Altri DBMS purtroppo non ne conosco. ;)
l3golas84
26-07-2006, 13:31
in access le date eranodelimitate dai #.... Cmq non funziona neanche con la and
perchè mi da lo stesso warning... c'è qualcosa di strano...
l3golas84
26-07-2006, 14:00
guardando una lista di comandi mysql ho notato che non esistono ne and ne having.... possibile??
guardando una lista di comandi mysql ho notato che non esistono ne and ne having.... possibile??No, ci sono entrambi.
l3golas84
26-07-2006, 14:38
risolto... era una questione di apici.... per una cavolata non funziona niente...
Cmq grazie dell'aiuto e del tempo perso per me :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.