Avatar billede mjl Nybegynder
31. august 2006 - 15:14 Der er 35 kommentarer og
2 løsninger

Flere datoer i DB på samme tid.

Hej der ...

Jeg har et problem!

Jeg skal bruge en liste med alle dagene i en valgt måned, f.eks. aug. 2006 - når denne måned er valgt, skal alle dagene listes op ...

Tirsdag 01.08.2006
Onsdag 02.08.2006

o.s.v.

Ud for hver, skal der være en checkbox, så nogle af dem kan vælges - datoerne, skal så sendes til MySQL, så kun de valgte bliver reg.

Hvordan gør man det!?
Avatar billede mjl Nybegynder
31. august 2006 - 16:05 #1
Nogen der kan hjælpe?
Avatar billede shooka Nybegynder
31. august 2006 - 16:11 #2
Jeg er lige gået i gang med at lave et eksempel, men jeg er ikke så meget inde i foreach(), strftime() og mktime(), så det kan være det ser lidt klodset ud.
Avatar billede mjl Nybegynder
31. august 2006 - 16:12 #3
Okay - vi må se ...
Avatar billede shooka Nybegynder
31. august 2006 - 16:22 #4
Så, her kommer det:

<?php
setlocale(LC_ALL, 'danish');

$aar = 2004;
$maaned = 12;
$d = mktime(0,0,0,$maaned,1,$aar);
$d = date('t',$d);
if($d == "28")
{
echo "28 dage i måneden";
$arr = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28");
}
else if($d == "29")
{
echo "29 dage i måneden";
$arr = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29");
}
else if($d == "30")
{
echo "30 dage i måneden";
$arr = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30");
}
else if($d == "31")
{
echo "31 dage i måneden";
$arr = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31");
}
echo "<br /><br />";
echo "<form method=\"post\" action=\"\">";
foreach ($arr as $value) {
$dato = strftime("%A, %e.%b.%y", mktime(0, 0, 0, $maaned, $value, $aar));
echo $dato;
echo "<input type=\"hidden\" name=\"hidden\" value=\"$dato\"><input type=\"checkbox\" name=\"dato\" value=\"dato[1]\"><br />";
}
echo "<input type=\"submit\" name=\"submit\" value=\"Tilføj dage til databasen\"></form>";
?>

Det er dog ikke helt færdigt, der mangler, hvad den skal gøre ved det man sender. Jeg er ikke helt sikker på denne linie: <input type=\"checkbox\" name=\"dato\" value=\"dato[1]\">
Avatar billede mjl Nybegynder
31. august 2006 - 16:26 #5
Ser lige på det - det ser jo lovende ud - 1000 tak for hjælpen!

Læg bare svar - du får points!
Avatar billede shooka Nybegynder
31. august 2006 - 16:27 #6
Ok, hvis det er nok?
Avatar billede shooka Nybegynder
31. august 2006 - 16:28 #7
Jeg skal nok skrive løsningen, hvis jeg finder ud af det :-)
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:39 #8
Det var nu alligvel meget at skulle lave 4 arrays for..

I stedet for en foreach, kunne man sagtens nøjes med en for

$aar = 2004;
$maaned = 12;
$d = mktime(0,0,0,$maaned,1,$aar);
$d = date('t',$d);
for ($dag=1;$dag<=$d;$dag++) {
$dato = strftime("%A, %e.%b.%y", mktime(0, 0, 0, $maaned, $value, $aar));
echo $dato;
echo "<input type=\"hidden\" name=\"hidden\" value=\"$dato\"><input type=\"checkbox\" name=\"dato\" value=\"dato[1]\"><br />";
}
Avatar billede shooka Nybegynder
31. august 2006 - 16:41 #9
Jeg tænkte nok, der nok ville komme en og klare ærterne :-)
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:41 #10
En lille forglemmelse i farten..


$aar = 2004;
$maaned = 12;
$d = mktime(0,0,0,$maaned,1,$aar);
$d = date('t',$d);
for ($dag=1;$dag<=$d;$dag++) {
$dato = strftime("%A, %e.%b.%y", mktime(0, 0, 0, $maaned, $dag, $aar));
echo $dato;
echo "<input type=\"hidden\" name=\"hidden\" value=\"$dato\"><input type=\"checkbox\" name=\"dato\" value=\"dato[1]\"><br />";
}
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:43 #11
shooka >> Jeg har jo ikke ændret i måden dit script præsentere dataene på, kun måden hvorpå at dataene bliver tilgængelige. Det er egenlig bare en anden måde at gøre det samme på, men jeg vil mene at 4 arrays er lige nok overkill !-)
Avatar billede shooka Nybegynder
31. august 2006 - 16:43 #12
Så mangler du bare denne linie:

setlocale(LC_ALL, 'danish');
Avatar billede shooka Nybegynder
31. august 2006 - 16:44 #13
Det så også lidt voldsomt ud :D
Avatar billede mjl Nybegynder
31. august 2006 - 16:44 #14
fixxxer> Den skriver samme dato hver dag...
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:45 #15
Korrekt, jeg startede egenlig bare ud med at ville illustrere hvordan det kunne gøres med en for-løkke, men endte med at kopiere det hele.. og så kom setlocale ikke med.
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:45 #16
Bruger du mit sidste eksempel? I den første glemte jeg at rette en variabel til fra shooka's script.
Avatar billede mjl Nybegynder
31. august 2006 - 16:46 #17
Ja
Avatar billede mjl Nybegynder
31. august 2006 - 16:47 #18
4. dec. hele vejen ...
Avatar billede shooka Nybegynder
31. august 2006 - 16:47 #19
Det lyder mystisk. Det er ikke sket ved mig
Avatar billede shooka Nybegynder
31. august 2006 - 16:48 #20
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:49 #21
Ja det lyder godt nok mystisk, jeg har lige copy/paste det og testet det..
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:49 #22
Jeg får samme data som shooka
Avatar billede mjl Nybegynder
31. august 2006 - 16:50 #23
Underligt...
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:51 #24
Prøv lige at copy/paste det her..

<?

setlocale(LC_ALL, 'danish');
$aar = 2004;
$maaned = 12;
$d = mktime(0,0,0,$maaned,1,$aar);
$d = date('t',$d);
for ($dag=1;$dag<=$d;$dag++) {
$dato = strftime("%A, %e.%b.%y", mktime(0, 0, 0, $maaned, $dag, $aar));
echo $dato;
echo "<input type=\"hidden\" name=\"hidden\" value=\"$dato\"><input type=\"checkbox\" name=\"dato\" value=\"dato[1]\"><br />";
}

?>

I et tomt script og se hvad der sker..
Avatar billede mjl Nybegynder
31. august 2006 - 16:53 #25
Samme resultat ...
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:54 #26
Link?
Avatar billede mjl Nybegynder
31. august 2006 - 16:54 #27
Men pyt - i deler bare points, så finder jeg nok ud af det .... måske en indstillinh i min PHP-fætter!
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:56 #28
Hvilken PHP version bruger du?
Avatar billede mjl Nybegynder
31. august 2006 - 16:56 #29
2 sek.
Avatar billede fixxxer Nybegynder
31. august 2006 - 16:57 #30
Og på hvilken platform du kører PHP?
Avatar billede mjl Nybegynder
31. august 2006 - 16:58 #31
PHP Version 4.2.3 - Apache
Avatar billede mjl Nybegynder
31. august 2006 - 17:02 #32
I skal ikke bruge mere tid - smid svar begge, og 1000 tak!
Avatar billede Slettet bruger
31. august 2006 - 17:02 #33
Prøv ret (det burde ellers virke med fixxxer's kode):
$d = mktime(0,0,0,$maaned,1,$aar);
$d = date('t',$d);

->

$d = date("t", mktime(0,0,0,$maaned,1,$aar));
Avatar billede mjl Nybegynder
31. august 2006 - 17:05 #34
Nej - det samme...
Avatar billede fixxxer Nybegynder
31. august 2006 - 17:07 #35
4.2.3 er også nogen versioner siden, du burde opdatere, selvom det ikke er en garenti for at det får det til at virke..
Avatar billede fixxxer Nybegynder
31. august 2006 - 17:07 #36
Og et svar
Avatar billede shooka Nybegynder
31. august 2006 - 17:10 #37
Jeg har lagt et svar tidligere ;)
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