Avatar billede jesperaha Nybegynder
19. juni 2007 - 16:39 Der er 10 kommentarer

Fejl i if-kode

Jeg er nybegynder ud i php og mysql og sidder og leger med Dreamweaver.

Jeg trækker værdien Online eller Offline ud af en database og den ligger så i $row_onlinestatus['status']

Mit problem er at scriptet ikke siger at sætter $change_to til 'Online' selvom der står Offline i databasen. Er der nogen der kan forklare hvorfor scriptet ikke registrerer at der står offline i min database og $change_to derfor skal have værdien 'Online'

<?php
       
      if ($row_onlinestatus['status'] == 'Offline' ) {
          $change_to = 'Online';}
        else  {
        $change_to = 'Offline';}
        ?>

På forhånd tak
Avatar billede michael_stim Ekspert
19. juni 2007 - 16:42 #1
Koden er der ikke noget i vejen med. Måske er det 'offline'?
if ($row_onlinestatus['status'] == 'offline' ) {
          $change_to = 'Online';
}
else  {
        $change_to = 'Offline';
}
Avatar billede maqhem Nybegynder
19. juni 2007 - 16:47 #2
Prøv at lave en alert med $row_onlinestatus['status'], og se, om den stemmer overens. Du kunne jo eventuelt også lave en alert under php-koden med $change_to for at se, om den sættes korrekt nok.
Avatar billede michael_stim Ekspert
19. juni 2007 - 16:48 #3
Eller bare udskrive den.

if ($row_onlinestatus['status'] == 'Offline' ) {
echo "IF: ".$row_onlinestatus['status'];
          $change_to = 'Online';
}
else  {
echo "ELSE: ".$row_onlinestatus['status'];
        $change_to = 'Offline';
}
Avatar billede peterpedersen Nybegynder
19. juni 2007 - 16:55 #4
Du skal altså huske at if sætninger ser forskel på store og små bogstaver!

Så du er nød til at sørge for at databasen nu også indeholder det du spørger om i if-sætningen
Avatar billede peterpedersen Nybegynder
19. juni 2007 - 17:01 #5
eller så kan du gøre således!

$string = "Offline";

if(strtoupper($row_onlinestatus[status]) == strtoupper($string)) {
$change_to = "Online";
}else{
$change_to = "Offline";
}
Avatar billede webudvikleren Nybegynder
19. juni 2007 - 17:32 #6
.. måske:

if ( !empty ( $row_onlinestatus['status'] ) )
{
    $change_to = (strtolower ( $row_onlinestatus['status'] ) == "offline" )) ? "Online" : "Offline";
}
Avatar billede michael_stim Ekspert
20. juni 2007 - 09:14 #7
Kom du videre?
Avatar billede jesperaha Nybegynder
21. juni 2007 - 22:40 #8
Jeg kan ikke finde fejlen. Det står med stort begyndelsesbogstav og selvom der står offline i databasen  bliver den ikke genkendt at if-sætningen.

Jeg har ændret det og bruger integerne 1 og 2 som offline og online - og sætter og nu virker det.
Avatar billede jesperaha Nybegynder
21. juni 2007 - 22:41 #9
ved ikke rigtig hvem jeg skal give pointene - i har jo alle forsøgt at hjælpe
Avatar billede maqhem Nybegynder
22. juni 2007 - 06:06 #10
Hvis ingen af os hjalp, har du vel din fulde ret til at besvare dit eget spørgsmål selv, netop fordi du fandt en løsning selv. Og så kan jeg oplyse om, at der normalvist benyttes 0 og 1 i stedet for 1 og 2, fordi 0 takles som falsk og 1 som sand - men det er nu fuldkommen ligemeget, 1 og 2 er helt fint. Jeg tænke bare, jeg lige kunne sige det, nu du selv nævnte det :)
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