>Thanks for everyones help yesterday but nI have come up against a problem
>(as I am new). I have created my document as detailed below with notes. I
>can see from the form that I have connected to the server, accessed the
>correct database, created the statment and executed it. The problem is how
>to display the information - as far as I can understand from yesterday if
>the result is 0 then the villa is available. So what I need to do is if the
>result = 0 display villa available and if the result is greater than 0 then
>display villa not available . I know that the variables are getting to the
>query as if I change the echo $result; to $sql; and key in 3 as the id and
>2 dates in the form I get the following:
>
>SELECT COUNT(*) FROM bookings WHERE ('2002-04-04') BETWEEN booking_start AND
>booking_end OR ('2002-04-10')BETWEEN booking_start AND booking_end AND
>villa_id = ('3')
>
>So, corrcet me if I am wrong but the query is working its just i cannot see
>anything. I have spent hours on this today, reading books and looking at the
>list. I hope that once I have done one good script I can then start to
>understand it and create more :-)
>
>Thanks for all your help
>
>
>Ray
>
>
><html>
> <body>
> <?php
>
> if ($submit) {
>
> // open connection to database
>
> $db = mysql_connect("localhost", "matrix", "matrix");
Add "or error_log(mysql_error())" to the end of this, so if your database
goes down or something you'll have a record of it in your Apache log.
>
> // pick database to use
>
> mysql_select_db("matrix",$db);
Same here in case some goofball deletes the whole matrix database or
something.
>
> // create the SQL statement
>
> $sql = "SELECT COUNT(*) FROM bookings WHERE ('$book_start_date') BETWEEN
>booking_start AND booking_end OR ('$book_end_date')BETWEEN booking_start AND
>booking_end AND villa_id = ('$place')";
Get rid of all the () except for count(*).
The rest of them are bogus.
> // execute the SQL statement
>
> $result = mysql_query($sql);
>
> // display the information
>
> echo $result;
NO.
$result is *NOT* your information.
If your SQL is broken, you'll get nothing output here.
You should again have:
or error_log(mysql_error()) at the end of the mysql_query() statement.
If everything goes well, though, $result *still* won't be the information
you want.
It will be a "result identifier"
That's a fancy way of saying it's like a little ticket at the meat counter
in your grocery store so you know whose turn it is.
You need to use http://php.net/mysql_fetch_row (or similar functions) to get
your actual data.
In this case, since you only get one answer, I would just use:
echo mysql_result($result, 0, 0);
to see the answer you want.
Actually, it will be more like this:
$taken = mysql_result($result, 0, 0);
if ($taken){
echo "Villa $place is not available between $book_start_date and
$book_end_date<BR>\n";
}
else{
echo "Villa $place is available from $book_start_date to
$book_end_date<BR>\n";
}
mysql_query() never returns your actual data -- It only returns an
"identifier" so you can go get your data.
>} else{
>
> // display form
>
> ?>
> <form method="post" action="<?php echo $PHP_SELF?>">
> Villa id number:<input type="Text" name="place"><br>
> Start date:<input type="Text" name="book_start_date"><br>
> End date:<input type="Text" name="book_end_date"><br>
> <input type="Submit" name="submit" value="Search information">
> </form>
> <?php
> }
> // end if
> ?>
> </body>
> </html>
>
>
--
Like Music? http://l-i-e.com/artists.htm
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php