Syntax Problem (Was : Date problem)
| From: | Neil Smith [MVP, Digital media] | Date: | Sun, 21 Jan 2007 18:15:33 +0000 |
| Subject: | Syntax Problem (Was : Date problem) | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-42964@lists.php.net to get a copy of this message | ||
At 16:26 21/01/2007, you wrote:
I have a date field in mysql called event_end . I want to run a query to find all records where the event_and is greater than today's date. I have written the following code. It does not work. Please point out the mistake. $today = getdate(); $sql="select * from events where event_end>'.$today.' order by event_start Asc ";Because PHP allows you to quote variables inside strings surrounded by " " characters, your string $sql passed to the database will actually be as follows select * from events where event_end>'.array.' order by event_start which you would have seen if you had used print($sql) to debug this. The reason if prints "array" is because - well getdate() returns an array, which you would have seen if you'd RTFM : array getdate ( [int timestamp] ). And there are dots surrounding the word
array because - well, you put them there and used single quotes to ensure they were output literally in the string, rather than closing the string using a matching double quote character then re-opening it with another double quote character after the $today variable.
Probably I would use the date() function to generate that date as a *string*, and make sure I quoted that string correctly when making the $sql string, eg like
$today = date('Y/m/d');
$sql = "SELECT * FROM events WHERE event_end> '".$today."' ORDER BY event_start ASC";
Cheers - Neil