Avatar billede shjorth Nybegynder
18. marts 2007 - 14:14 Der er 12 kommentarer og
1 løsning

sql check i db

Hejsa.. Jeg har flg kode:

<?php
$BookingStart = $_POST['y']."-".$_POST['m']."-".$_POST['d'];
$BookingSlut = $_POST['y']."-".$_POST['m2']."-".$_POST['d2'];

$query = "SELECT * FROM kalender WHERE `Start` BETWEEN ".$BookingStart." AND ".$BookingSlut." OR `Slut` BETWEEN ".$BookingStart." AND ".$BookingSlut."";
$result = mysql_query( $query );
if( !$result )
{
echo "Databasefejl";
}elseif( 0 > mysql_num_rows( $result ) )
{
echo "Du har valgt en tid som er optaget";
}else
{
print "indsat";
}

require("footer.inc.php");
?>

Det er så meningen den skal komme tilbage med en fejl hvis datoerne allerede findes i databasen, men det gør den ikke.. Den siger (indsat) hvergang ligegyldig om datoerne ligger der i forvejen eller ej.. Er der nogen der kan se en fejl??

Datoerne ligger i to "Date" fields i databasen. (Start og Slut)
Så der står f.eks:
Start: 2007-03-01
Slut: 2007-03-11

Er der nogen der kan se hvad der måtte være galt ? :)
Avatar billede dkfire Nybegynder
18. marts 2007 - 14:22 #1
Ja
if( !$result )
{
echo "Databasefejl";
}elseif( 0 < mysql_num_rows( $result ) )
{
echo "Du har valgt en tid som er optaget";
}else
{
print "indsat";
}
Avatar billede shjorth Nybegynder
18. marts 2007 - 14:24 #2
Smed lige en "or die(mysql_error()) på, og jeg får flg fejl:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OR slut BETWEEN 2007-03-01 AND 2007-03-06' at line 1

Er der nogen der ved om jeg kan bruge et alternativ?
Avatar billede shjorth Nybegynder
18. marts 2007 - 14:24 #3
hmm.. Får stadig den samme fejl :S
Avatar billede shjorth Nybegynder
18. marts 2007 - 14:26 #4
Eller nej, nu får jeg "Databasefejl" :S
Avatar billede dkfire Nybegynder
18. marts 2007 - 14:31 #5
Måske kan OR ikke bruger i den sammenhæng
Avatar billede dkfire Nybegynder
18. marts 2007 - 14:34 #6
"SELECT * FROM kalender WHERE (`Start` BETWEEN $BookingStart AND $BookingSlut) OR (`Slut` BETWEEN $BookingStart AND $BookingSlut)" måske, ved jeg ikke helt.

Ellers bliver du nød til at lave to forespørgelser, en for Start og en for Slut.
Avatar billede shjorth Nybegynder
18. marts 2007 - 14:36 #7
hmm.. Har du et forslag til et alternativ?
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 14:37 #8
Du skal nok lige have '...' omkring dine datoer
Avatar billede shjorth Nybegynder
18. marts 2007 - 14:42 #9
Det var det der skulle til ;) Tusinde tak (igen igen). Smider du et svar?
Avatar billede erikjacobsen Ekspert
18. marts 2007 - 14:43 #10
Jeg samler ikke på point, tak.
Avatar billede shjorth Nybegynder
18. marts 2007 - 20:59 #11
dkfire?
Avatar billede dkfire Nybegynder
18. marts 2007 - 23:07 #12
Jeg kan da godt tage de point, men jeg er ikke i nød.
Hvis du har flere problemer, skriver du bare.
Avatar billede shjorth Nybegynder
18. marts 2007 - 23:54 #13
Mange tak for hjælpen :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester