Avatar billede borgenviby Nybegynder
16. november 2006 - 14:44 Der er 15 kommentarer og
1 løsning

Korrekt opsætning af if/else i denne variable

Hvordan sætter jeg denne variable op, hvis der ikke er nogen værdi i databasen. Har lavet dette men der kommer ikke nogen værdi. Regner med der er noget galt med min if sætning....

$dif_start1 = strtotime($book_start[1]); // ex. $book_start[1] = 15/11/2006 09:30
if($dif_start1 = "") // der er ikke nogen værdi i databasen
{
$dif_start1 = strtotime($start_)+ 5400; //  $start_ = ex. 16/11/2006 09:30
    }
Avatar billede borgenviby Nybegynder
16. november 2006 - 14:53 #1
Arrggg. Mellemrum mellem " " . Så virker det jo ;o)

$dif_start1 = strtotime($book_start[1]); // ex. $book_start[1] = 15/11/2006 09:30
    if($dif_start1 = " "){
    $dif_start1 = strtotime($start_)+5400; //  $dif_start1 = xx/xx/xxxx 09:30
    }
Avatar billede borgenviby Nybegynder
16. november 2006 - 15:29 #2
Lidt for hurtigt på aftrækkeren. Hvis der er en værdi i databasen, bruger den stadig if variablen. Hvad er det lige der går galt?

Nogen hajer der kan hjælpe?....
Avatar billede sw_red_6 Nybegynder
16. november 2006 - 15:34 #3
du kunne prøve med if($dif_start1 == " ") {
== betyder sammenlign ;o)
Avatar billede borgenviby Nybegynder
16. november 2006 - 16:53 #4
Ok. Nu vælger den tallene i databasen hvis de er der. Men den vil ikke vælge if variablen.. hhhmmmm
Nogen ide´r


$dif_start1 = strtotime($book_start[0]); // ex. $book_start[0] = 15/11/2006 09:30
if($dif_start1 == " " )

{

$dif_start1 = strtotime($start)+5400; //  $start = ex. 14/11/2006 09:30

}
Avatar billede sw_red_6 Nybegynder
17. november 2006 - 09:08 #5
hvad mener du med ikke vælge if variablen?
Avatar billede borgenviby Nybegynder
17. november 2006 - 12:04 #6
Jeg smider lige hele koden, fordi den laver altså noget jeg ikke lige kan forstår.

Hvis jeg laver en echo på $dif_start1 og der ikke er nogen værdi i databasen skriver den dags dato f.eks. 17/11/2006 00:00

Hvis man f.eks vælger den 19/11/2006 i formen og laver et echo på $start skriver $start 19/11/2006 12:00 som den skal, men $dif_start1 skriver stadig dags dato f.eks idag 17/11/2006 00:00


// Sticks Date and Hour together from Availables search form ex. 2006-11-20 09:30:00
    $start = DateAndHour($_REQUEST["search_start_date"], $_REQUEST["search_start_hour"] + $time_offset);
    $end = DateAndHour($_REQUEST["search_end_date"], $_REQUEST["search_end_hour"] + $time_offset);

// Finds book_start and book_end to use with available times
    $dif_start1 = strtotime($book_start[0]); // ex. $book_start[0] = 15/11/2006 09:30
    if($book_start[0] == " " )
    {
    $dif_start1 = strtotime($start)+5400; //  $dif_start1 = xx/xx/xxxx 11:00
    }
</head>
<body>
<tr>
    <td><?php
   
    $free1 = ($dif_start1 - strtotime($start));
    if($free1 >= $object_time)
    echo date("d/m/Y H:i", strtotime($start));
    else
    echo "Ingen ledige tider!";
   
    ?></td>
    <td></td>
</tr>
Avatar billede borgenviby Nybegynder
17. november 2006 - 12:16 #7
Så det virker jo som om den ikke ser strtotime($start) i echo date("d/m/Y H:i", strtotime($start)
Avatar billede sw_red_6 Nybegynder
17. november 2006 - 12:29 #8
jeg tror ikke strtotime kan håndtere 19/11/2006 12:00, prøv med mm/dd/yyyy hh:mm eller yyyy/mm/dd hh:mm
Avatar billede borgenviby Nybegynder
17. november 2006 - 12:44 #9
Undskyld $start = 2006-11-17 09:30:00 // Idag

Så burde jeg vel kunne lave en strtotime($start)

Men virker det ikke som om fejlen ligger i :

echo date("d/m/Y H:i", strtotime($start)); // at den ignorere strtotime($start)og

udskriver dags dato
Avatar billede sw_red_6 Nybegynder
17. november 2006 - 12:50 #10
sikker på at det ikke skal være $dif_start1 der skal bruges?
Avatar billede borgenviby Nybegynder
17. november 2006 - 14:47 #11
Det ændre ikke på den at den ikke udskriver $dif_start1 korrekt.

$dif_start1 = strtotime($book_start[0]); // ex. $book_start[0] = 2006-11-17 09:30
   
if($dif_start1 == " " ) // Hvis $book_start[0] er tom =>

    {

    $dif_start1 = strtotime($start)+5400; //  ex. $dif_start1 = 2006-11-17 11:00

    }

Så hvis databasen er tom skal den udfører 'if' funktionen som skal være =

dags dato + 90min f.eks. 2006-11-17 11:00
Avatar billede sw_red_6 Nybegynder
17. november 2006 - 14:51 #12
jep, den er jeg med på. Jeg kan bare ikke lige se hvordan du henter data fra databasen eller hvor du udskriver $dif_start1.
du kunne evt. prøve at fjerne det mellemrum i if'en
Avatar billede sw_red_6 Nybegynder
17. november 2006 - 15:30 #13
hm det var vidst ikke så godt formuleret..
det var det her du skulle prøve: if($dif_start1 == "")
Avatar billede borgenviby Nybegynder
18. november 2006 - 09:27 #14
Ok så virker det. Troede ellers jeg havde prøvet denne løsning før, men det kan jeg jo ikke have haft.. ;0) Og jo mellemrummet skulle væk

det skal ikke være if($dif_start1 == "" );
men if($book_start[0] == "" )

$dif_start1 = strtotime($book_start[0]); // ex. $book_start[0] = 2006-11-17 09:30
   
if($book_start[0] == "" )

    {

    $dif_start1 = strtotime($start)+5400; //  ex. $dif_start1 = 2006-11-17 11:00

    }

Men takker for hjælpen :0)
Smid et svar hvis du vil have point'ne
Avatar billede sw_red_6 Nybegynder
18. november 2006 - 17:05 #15
i spørgsmålet skriver du det jo uden mellemrum, så du havde nok prøvet den løsning, der var bare det lille problem med = i stedet for == ;o)
forskellen mellem " " og "" er at her " " tjekker du på mellemrum, mens her "" tjekker du på ingenting
Avatar billede borgenviby Nybegynder
19. november 2006 - 13:35 #16
Man lærer hver dag :0) Jeg er stadig grøn i PHP og så er det jo dejligt man kan få lidt hjælp. Så bliver det spændende hvad det næste problem bliver ;0)

Men jeg takker for hjælpen
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