Avatar billede znopie Nybegynder
21. januar 2010 - 19:35 Der er 3 kommentarer og
1 løsning

Indsæt i ugekalender

Hej Eksperter

Jeg sidder og leget med et funktion der kan sætte mine arbejdstimer ind i en tabel der indeholder alle ugens dage fordelt på en linje med ugenummer. Samt den laver en total for alle ugerne.

Se mere her på min prøve side: http://f1e6692391587cd350b90e29171a85046e085aba.web6.temporaryurl.org/

Min kode er følgende:
<?php
$case = $mysqli->query("SELECT WEEKOFYEAR(caseDate) AS Uge,WEEKDAY(caseDate) AS Dag,caseNumber AS Beskrivelse,caseHours AS Timer FROM worksheet ORDER BY caseDate,Uge,Dag ASC") OR DIE($mysqli->error);

echo "<style>.week{background-color:rgb(0,190,130);}.weekend{background-color:rgb(231,231,231);} .f td {padding-top:10px;}</style>";
echo "<table cellSpacing=\"0\" cellPadding=\"0\" width=\"100%\" border=\"1\">\n";
echo "<tr> <td class=\"week\"> </td> <td></td> <td></td> <td></td> <td></td> <td></td> <td class=\"weekend\"></td> <td class=\"weekend\"></td> </tr>\n";

echo "<thead><tr> <th class=\"week\">Uge:</th> <th>Mandag (0)</th> <th>Tirsdag (1)</th> <th>Onsdag (2)</th> <th>Torsdag (3)</th> <th>Fredag (4)</th> <th class=\"weekend\">Lørdag (5)</th> <th class=\"weekend\">Søndag (6)</th> </tr></thead>\n";
echo "<tfoot class=\"f\"><tr> <td>Total:</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td class=\"weekend\"></td> <td class=\"weekend\"></td> </tr></tfoot>\n";
echo "<caption style=\"font-size:18px;\"><strong>Arbejdsuge</strong></caption>\n";
echo "</table>\n";

echo "\n<h2>MySQL Data</h2>\n";
    while($view = $case->fetch_array(MYSQLI_ASSOC))
    {
        foreach($view AS $key => $value)
            {
                echo $key." &#8594; ".str_replace(array(".50",".00"),array("½",""),$value)."; ";
            }
        echo "<br />\n";
    }

?>
Avatar billede intenz Novice
21. januar 2010 - 20:45 #1
Nå, spændende. Jeg har også lavet noget kode for nyligt. Det kan jeg også paste ind her? :P

On-topic:
Det ville nok hjælpe hvis du skrev hvad dit spørgsmål var?
Avatar billede znopie Nybegynder
21. januar 2010 - 20:57 #2
Hov, glemte spørgsmålet ja :)

Spørgsmåler er, hvordan får jeg flyttet mine data fra min MySQL over i de rigtige rækker og kolonner i tabellen. Så f.eks. fredag i uge 3 ligger i kolonnen 3 og rækken fredag ?
Avatar billede znopie Nybegynder
21. januar 2010 - 22:13 #3
Nu har jeg fået knækket lidt af koden, men hvordan kan jeg samle ugen på 1 linje, så den ikke er på 4 forskellige?

<?php
$case = $mysqli->query("SELECT WEEKOFYEAR(caseDate) AS Uge,WEEKDAY(caseDate) AS Dag,caseNumber,caseHours FROM worksheet ORDER BY caseDate,Uge,Dag ASC");

echo "<table cellSpacing=\"0\" cellPadding=\"0\" width=\"100%\" border=\"1\">\n";

echo "<tr>";
for ($day=-1;$day<=6;$day++){echo "<th>".str_replace(array(-1,0,1,2,3,4,5,6), array("Uge","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag","Søndag"), $day)."</th>";} // HEADER TABLE
echo "</tr>";

    $i=1;

while($view = $case->fetch_array(MYSQLI_ASSOC)) { $array[$i++] = array("0"=>$view['Uge'], $view['Dag']+1=>$view['caseNumber'], "hours" => $view['caseHours']); }

    foreach($array AS $key => $value)
        {
            $r++;
            echo "<tr>";
                for ($row=0;$row<=7;$row++)
                {
                    if($array[$r][$value['Dag']] <= $row) {
                        if(strlen($value[$row]) > 2) { echo "<td>".$value[$row]." (".$value['hours'].")</td>"; } else { echo "<td>".$value[$row]."</td>"; }
                    }
                }
            echo "</tr>";
        }

echo "<caption style=\"font-size:18px;\"><strong>Arbejdsuge</strong></caption>\n";
echo "</table>\n";
   
//echo "<pre>"; print_r($array); echo "</pre>";

?>
Avatar billede znopie Nybegynder
05. august 2010 - 17:51 #4
intet svar? LUKKER
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