/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Begrænsning i antal af if.. elsei
Fra : Henrik Pedersen


Dato : 09-11-03 08:06

Er der begrænsning på hvor mange if.. elseif.. man kan have i sit script?

På siden http://www.marbaekskolen.dk skal vises hvornår solen står op og
hvornår den går ned - og mit script har virket fint til og med fredag.

Først finder jeg ud af hvilken måned det er - sætter lidt grafik ind og
laver en ramme (defineret gn. css):

<?php
$month = date("m");

switch($month)
{
case 11:
echo "<div><img src=\"ikoner/solopned.gif\" width=\"36\" height=\"18\"
align=\"bottom\" alt=\"Sol op og ned-tider\"></div><div
class=\"nyhed\">"; include ("solopned/nov.inc"); echo "</div><br>"; break;
case 12:
echo "<div>
...[snip]


Dernæst i den inkluderede fil (her nov.inc) aflæses hvilken dag det er i
måneden og hvad der så skal skrives inde i rammen.
Der er lidt langt - scriptet:

<?php

$dato = date("d");

$lys0111="Sol op: 07:17<br>Sol ned: 16:33"; // 1. november 2003
$lys0211="Sol op: 07:19<br>Sol ned: 16:31"; // 2. november 2003
$lys0311="Sol op: 07:21<br>Sol ned: 16:29"; // 3. november 2003
$lys0411="Sol op: 07:24<br>Sol ned: 16:27"; // 4. november 2003
$lys0511="Sol op: 07:26<br>Sol ned: 16:25"; // 5. november 2003
$lys0611="Sol op: 07:28<br>Sol ned: 16:23"; // 6. november 2003
$lys0711="Sol op: 07:30<br>Sol ned: 16:21"; // 7. november 2003
$lys0811="Sol op: 07:32<br>Sol ned: 16:19"; // 8. november 2003
$lys0911="Sol op: 07:34<br>Sol ned: 16:17"; // 9. november 2003
$lys1011="Sol op: 07:36<br>Sol ned: 16:15"; // 10. november 2003
$lys1111="Sol op: 07:38<br>Sol ned: 16:13"; // 11. november 2003
$lys1211="Sol op: 07:40<br>Sol ned: 16:11"; // 12. november 2003
$lys1311="Sol op: 07:42<br>Sol ned: 16:10"; // 13. november 2003
$lys1411="Sol op: 07:44<br>Sol ned: 16:08"; // 14. november 2003
$lys1511="Sol op: 07:46<br>Sol ned: 16:06"; // 15. november 2003
$lys1611="Sol op: 07:48<br>Sol ned: 16:04"; // 16. november 2003
$lys1711="Sol op: 07:51<br>Sol ned: 16:03"; // 17. november 2003
$lys1811="Sol op: 07:53<br>Sol ned: 16:01"; // 18. november 2003
$lys1911="Sol op: 07:55<br>Sol ned: 16:00"; // 19. november 2003
$lys2011="Sol op: 07:56<br>Sol ned: 15:58"; // 20. november 2003
$lys2111="Sol op: 07:58<br>Sol ned: 15:57"; // 21. november 2003
$lys2211="Sol op: 08:00<br>Sol ned: 15:55"; // 22. november 2003
$lys2311="Sol op: 08:02<br>Sol ned: 15:54"; // 23. november 2003
$lys2411="Sol op: 08:04<br>Sol ned: 15:53"; // 24. november 2003
$lys2511="Sol op: 08:06<br>Sol ned: 15:51"; // 25. november 2003
$lys2611="Sol op: 08:08<br>Sol ned: 15:50"; // 26. november 2003
$lys2711="Sol op: 08:10<br>Sol ned: 15:49"; // 27. november 2003
$lys2811="Sol op: 08:11<br>Sol ned: 15:48"; // 28. november 2003
$lys2911="Sol op: 08:13<br>Sol ned: 15:47"; // 29. november 2003
$lys3011="Sol op: 08:15<br>Sol ned: 15:46"; // 30. november 2003

if ($dato==01)
echo $lys0111;
elseif ($dato==02)
echo $lys0211;
elseif ($dato==03)
echo $lys0311;
elseif ($dato==04)
echo $lys0411;
elseif ($dato==05)
echo $lys0511;
elseif ($dato==06)
echo $lys0611;
elseif ($dato==07)
echo $lys0711;
elseif ($dato==08)
echo $lys0811;
elseif ($dato==09)
echo $lys0911;
elseif ($dato==10)
echo $lys1011;
elseif ($dato==11)
echo $lys1111;
elseif ($dato==12)
echo $lys1211;
elseif ($dato==13)
echo $lys1311;
elseif ($dato==14)
echo $lys1411;
elseif ($dato==15)
echo $lys1511;
elseif ($dato==16)
echo $lys1611;
elseif ($dato==17)
echo $lys1711;
elseif ($dato==18)
echo $lys1811;
elseif ($dato==19)
echo $lys1911;
elseif ($dato==20)
echo $lys2011;
elseif ($dato==21)
echo $lys2111;
elseif ($dato==22)
echo $lys2211;
elseif ($dato==23)
echo $lys2311;
elseif ($dato==24)
echo $lys2411;
elseif ($dato==25)
echo $lys2511;
elseif ($dato==26)
echo $lys2611;
elseif ($dato==27)
echo $lys2711;
elseif ($dato==28)
echo $lys2811;
elseif ($dato==29)
echo $lys2911;
elseif ($dato==30)
echo $lys3011;
else
echo "";

?>


Det virkede fint til og med fredag. I går var det så dag 08 og nu virker
det ikke.
Hvorfor mon??


mvh.

Henrik Pedersen


 
 
Jimmy (09-11-2003)
Kommentar
Fra : Jimmy


Dato : 09-11-03 10:15


"Henrik Pedersen" <henrik@pedersen.invalid> wrote in message
news:3fade74c$0$9721$edfadb0f@dread14.news.tele.dk...
> Er der begrænsning på hvor mange if.. elseif.. man kan have i sit script?

Nej.


[KLIP ekstremt mange if's]

Hvis jeg var dig ville jeg nok overveje om man kunne finde en mere effektiv
metode.



> Det virkede fint til og med fredag. I går var det så dag 08 og nu virker
> det ikke.
> Hvorfor mon??


Det er da et godt spørgsmål.
Hvilken fejl får du?

Mvh
Jimmy



Henrik Pedersen (09-11-2003)
Kommentar
Fra : Henrik Pedersen


Dato : 09-11-03 11:43

Jimmy skrev:
> "Henrik Pedersen" <henrik@pedersen.invalid> wrote in message
> news:3fade74c$0$9721$edfadb0f@dread14.news.tele.dk...
>
>>Det virkede fint til og med fredag. I går var det så dag 08 og nu virker
>>det ikke.
>>Hvorfor mon??
>
>
>
> Det er da et godt spørgsmål.
> Hvilken fejl får du?
>
Der skrives bare slet ikke noget. Altså vil jeg tro at scriptet læse,
men at det så er min 'default' der blive skrevet.
Default er sat til: "" (tom)

Og det er da rigtigt at der er mange if's, men jeg mente at jeg kunne
holde fint styr på datoer og deres indhold på denne måde.

mvh.
Henrik Pedersen


Henrik Pedersen (09-11-2003)
Kommentar
Fra : Henrik Pedersen


Dato : 09-11-03 11:53

Henrik Pedersen skrev:

>>
>> Det er da et godt spørgsmål.
>> Hvilken fejl får du?
>>
> Der skrives bare slet ikke noget. Altså vil jeg tro at scriptet læse,
> men at det så er min 'default' der blive skrevet.
> Default er sat til: "" (tom)

Og måtte straks afprøve det. Den læser scriptet. Jeg ændrede min
'default'- som jo selvfølgelig er den sidste else echo - fra tom "" til
"test".
Og det er det der nu skrives på siden.
Jeg kan ikke finde nogen fejl ellers i scriptet ellers - så derfor fik
jeg mistanke om begrænsning af if.. elseif..

Men man skulle måske prøve at tænke helt anderledes?

mvh.

Henrik Pedersen


Dino (09-11-2003)
Kommentar
Fra : Dino


Dato : 09-11-03 14:16

Den 9-11 2003 skrev Henrik Pedersen i
dk.edb.internet.webdesign.serverside.php:

> Men man skulle måske prøve at tænke helt anderledes?

Måske Arrays?

<?php
$maaned = date("m");
$dato = date("d");
include ("solopned/".$maaned.".inc");
echo ($op_ned[$dato]);
?>

Så vil 11.inc indeholde

<?php
$op_ned = array(
   '01' => "Sol op: 07:17<br>Sol ned: 16:33",
   '02' => "Sol op: 07:19<br>Sol ned: 16:31",
..
..
..
   '29' => "Sol op: 08:13<br>Sol ned: 15:47",
   '30' => "Sol op: 08:15<br>Sol ned: 15:46"
);
?>

<http://starcruiser.dk/sol/>

--
Dino

Verdens største samling af danske
script og moduler til Hamsteren
<http://starcruiser.dk/hamstersiden/>

Henrik Pedersen (09-11-2003)
Kommentar
Fra : Henrik Pedersen


Dato : 09-11-03 18:46

Dino skrev:
> Den 9-11 2003 skrev Henrik Pedersen i
> dk.edb.internet.webdesign.serverside.php:
>
>
>>Men man skulle måske prøve at tænke helt anderledes?
>
>
> Måske Arrays?
>
> <?php
> $maaned = date("m");
> $dato = date("d");
> include ("solopned/".$maaned.".inc");
> echo ($op_ned[$dato]);
> ?>
>
> Så vil 11.inc indeholde
>
> <?php
> $op_ned = array(
>    '01' => "Sol op: 07:17<br>Sol ned: 16:33",
>    '02' => "Sol op: 07:19<br>Sol ned: 16:31",
> .
> .
> .
>    '29' => "Sol op: 08:13<br>Sol ned: 15:47",
>    '30' => "Sol op: 08:15<br>Sol ned: 15:46"
> );
> ?>
>
> <http://starcruiser.dk/sol/>
>

Tusind tak. Så virker det igen.
Og det var jo en noget kraftig slankning af koden!?!


mvh.

Henrik Pedersen


Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste