database output als calender

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Henry

Henry

08/10/2006 16:05:00
Quote Anchor link
Hallo , ik heb net 365 database entrys gemaakt in deze vorm
calendar_id int(11) Nee 0
calendar_date date Nee 0000-00-00 :

calender_id | calender_date
1| '2006-01-01'
2| '2006-01-02'
3| '2006-01-03'
4| '2006-01-04'
5| '2006-01-05'
6| '2006-01-06'
7| '2006-01-07'
8| '2006-01-08'
9| '2006-01-09'
10| '2006-01-10'
t/m
365 voor het gehele jaar dus.
Hoe krijg ik dit in een calender viewmode
dus 1 t/m 31 januarie in een kolom januarie op dag gesorteerd ditzelfde voor de andere maanden.
Ik heb echt geen flauw benul.

Bij voorbaat dank ik u zeer

PS: Ik moet het echt op deze wijze maken dus via een database.
Gewijzigd op 01/01/1970 01:00:00 door Henry
 
PHP hulp

PHP hulp

23/11/2024 14:03:10
 
Joren de Wit

Joren de Wit

08/10/2006 16:19:00
Quote Anchor link
Ik hoop dat de kolom calender_date wel van het type DATE is? Op die manier kun je gewoon sorteren op datum. Je zou zelfs de maand uit de database kunnen selecteren om te controleren welke maand het is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT DATE_FORMAT(datum, '%m') AS maand
FROM tabel
 
Henry

Henry

08/10/2006 18:40:00
Quote Anchor link
jaja calendar_date is van het type maand
ik heb de database ook aangepast nu
ik voor iedere datum dus bv
2006-09-12
heb ik ervoor een $did gemaakt
dus
calendar_id int(11) Nee 0
did int(11) Nee 0
calendar_date date Nee 0000-00-00

255, 12, '2006-09-12'
 
Henry

Henry

08/10/2006 18:43:00
Quote Anchor link
het doel is om output te maken in ongeveer deze vorm:

September 2006
Mon Tue Wed Thu Fri Sat Sun
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
<<Prev month Next Month>>
Gewijzigd op 01/01/1970 01:00:00 door Henry
 
Frank -

Frank -

08/10/2006 18:58:00
Quote Anchor link
Kun je uitleggen wat de bedoeling is? Ik krijg de indruk dat er ergens een grote denkfout in jouw systeem zit. Normaal gesproken ga je uitsluitend de datums (en tijden) opslaan van een gebeurtenis. De rest kun je door het script laten invullen. Zo zijn er bv. duizend-en-1 javascript-kalanders te krijgen die simpel worden samengesteld op basis van een huidige datum. That's it!

Het kan gewoon niet de bedoeling zijn om alle datums in de database te zetten en op basis van die gegevens een kalender samen te stellen. Dat is gewoon onzinnig.
 
Henry

Henry

08/10/2006 19:02:00
Quote Anchor link
zoals ik al eerder zei:
PS: Ik moet het echt op deze wijze maken dus via een database.

hoe onzinnig jij het ook vind
 
- -

- -

08/10/2006 20:16:00
 
Henry

Henry

08/10/2006 20:30:00
Quote Anchor link
Ja herjan,
Zo moet het eruit komen te zien maar dan moet het de datums uit mijn database gebruiken.Dus GEEN door php gegenereerde calender.
Maar een calender gegenereerd MET php waarbij de datums dus direct uit de database komen.
idd van die java/dhtml/html en easy php calenders heb ik er al 1000 van gezien.
php mag wel de date functies gebruiken natuurlijk om de data uit mysql te converteren tot een calender.
 
Jan Koehoorn

Jan Koehoorn

08/10/2006 20:37:00
Quote Anchor link
Ik ben het met Frank eens. Datums op die manier gebruiken met MySQL is uiterst inefficient. Dan kan het nog een opdracht zijn, maar het is iets dat je in de praktijk nooit zo zult doen.

Het zou al een heel stuk helpen, als je ons vertelt waarom het zo moet en niet alleen dat het zo moet.
 
Henry

Henry

08/10/2006 21:10:00
Quote Anchor link
elke datum is 1 product
01-03-2006 voeg toe aan winkelwagen.
dus in feite is iedere datum 1 product.
word er elk jaar een nieuwe kalender ingevoert.

ik weet dat het niet logisch klinkt maar juist in mijn geval wel , geloof me ik heb geen denkfout gemaakt
elke datum word appart aan 1 hoofdproduct gekoppelt.
Je kunt het ook zien als een reserverings systeem alleenmet zo'n soort systemen ben je meestal beperkt tot 1 datum range dus van xx tot xx
dit wil ik niet.. ik wil zeggen ik kies 1 januarie 5 december etc etc.
het is tevens cruciaal dat de datums als producten ingevoerd worden ivm administratie.
En last but not least ik vind het tevens logischer om met tastbare gegevens te werken.

door gebruik te aken van prev/next beperk ik de laadtijd tot een maximaal van 31 producten.
Daarnaast kan ik vanuit dit systeem de beschikbaarheid veel makkelijker beperken dmv checks ipv moeilijke functies te maken.
Gewijzigd op 01/01/1970 01:00:00 door Henry
 
Jan Koehoorn

Jan Koehoorn

08/10/2006 21:25:00
Quote Anchor link
Dan zou ik het nog steeds anders doen, maar goed. Je vult dus een heel jaar van tevoren in. Wil je alle datums van januari eruit laten rollen, dan doe je:

SELECT datum
FROM datums
WHERE MONTH(datum) = 1
ORDER BY datum ASC
 
Henry

Henry

08/10/2006 21:32:00
Quote Anchor link
nog 1 x

in mijn database staan de datums als volgt
1, 1, '2006-01-01'
2, 2, '2006-01-02'
3, 3, '2006-01-03'
4, 4, '2006-01-04'
5, 5, '2006-01-05'
6, 6, '2006-01-06'
7, 7, '2006-01-07'
8, 8, '2006-01-08'
9, 9, '2006-01-09'
10, 10, '2006-01-10'
11, 11, '2006-01-11'
12, 12, '2006-01-12'
xxx
244, 1, '2006-09-01'
id=244 ,1 is 1st dag van de maand, datumformat van die maand is DATE(2006-09-01)
Dus alleen al van de waarde DATE(2006-09-01) moet toch php code bestaan die met dit gegeven een hele calender creërt.
Het gaat mij om hoe ik deze data format ... aan een rij van januarie heb ik natuurlijk niks.
Het doel is om dan in dit geval WEL met de php date functies hieruit een calender te construeren.
ik weet dat er php functies bestaandie dan dus ook de naam vd dag laten zien
ma-di-woe-do-vrij-za-zo
1 2 3 4 5
6 7 8 9 10 11 12

enz
Gewijzigd op 01/01/1970 01:00:00 door Henry
 
Jan Koehoorn

Jan Koehoorn

08/10/2006 21:37:00
Quote Anchor link
Ja hoor, die functies bestaan. Zoek maar eens bij strftime
 
Henry

Henry

08/10/2006 21:58:00
Quote Anchor link
ja die ken ik al , maar ik dacht dat ik hier wat gerichtere hulp kon verwachten.
ik vraag namelijk niet om een hele aplicatie te bouwen.
Daarnaast denk ik dat er met mijn vraag niks mis is en hier weinig tot eigenlijk geen toelichting nodig is.

ik weet wat er allemaal mogelijk is met een pc'tje , maar dat wil niet zeggen dat ik weet HOE ik m op de juiste manier dien te gebruiken.

Als ik naar de bakker ga en vraag voor kersenvlaai ZONDER slagroom gaat de bakker echt niet zeggen "ik zou er slagroom opdoen dan is ei veel lekkerder" je kunt dan concluderen dat hij zonder slagroom niet lekker is en de bakker dus eigenlijk geen lekkere kersenvlaai kan bakken.
 
Jan Koehoorn

Jan Koehoorn

08/10/2006 22:03:00
Quote Anchor link
Je vergelijking met de bakker gaat niet op. Je betaalt hem namelijk voor een product. Hier gaat alles op basis van vrijwilligheid en je zult merken dat deze manier van posten niet echt uitnodigend is voor de mensen die je zouden kunnen helpen.
 
Robert Deiman

Robert Deiman

08/10/2006 22:10:00
Quote Anchor link
Henry schreef op 08.10.2006 21:32:
ik weet dat er php functies bestaandie dan dus ook de naam vd dag laten zien
ma-di-woe-do-vrij-za-zo
1 2 3 4 5
6 7 8 9 10 11 12

enz


Idd wat jan al zegt nodigt dit niet erg uit, maargoed.

Je kent dus al functies die ma-di-wo-enz.. weergeven, doe het dan als volgt:

Haal dagnaam op.. (of dagnummer, is al genoeg)

tabel maken met row waarin ma t/m zo staan, vervolgens kijk je welke dag het is, en in die kolom begin je met schrijven, en zo ga je verder.. (overigens kan je ook een weekdagnummer ophalen met MySQL, dat is sneller)
 
Henry

Henry

08/10/2006 22:14:00
Quote Anchor link
ik had zo'n tegen reactie verwacht.
maar er word NIET naar de vraag gekeken.
De vraag is toch heel duidelijk

er staat niet onder....
of hoe zou iemand anders het doen..
de vraag is heel specefiek en duidelijk.
Ik vind als je mij NIET wilt of kunt helpen je gewoon niet moet reageren.
Dat is zinloos en onnodig data en bandbreedte verspilling.

Blijf bij de topic vraag en ga niet bakkeleien
 
Robert Deiman

Robert Deiman

08/10/2006 22:20:00
Quote Anchor link
Henry schreef op 08.10.2006 22:14:
ik had zo'n tegen reactie verwacht.
maar er word NIET naar de vraag gekeken.
De vraag is toch heel duidelijk

er staat niet onder....
of hoe zou iemand anders het doen..
de vraag is heel specefiek en duidelijk.
Ik vind als je mij NIET wilt of kunt helpen je gewoon niet moet reageren.
Dat is zinloos en onnodig data en bandbreedte verspilling.

Blijf bij de topic vraag en ga niet bakkeleien


Henry, wil je nog geholpen worden of niet, ik ben het echt met Jan eens. We proberen je op het goede pad te zetten door je op de (mijns insziens) betere alternatieven te wijzen.
Als jij je vervolgens aangevallen voelt doordat je het idee hebt dat je niet door ons wordt geholpen, is dat helemaal je eigen schuld. Uit je vraag blijkt namelijk al dat je niet zeer veel kennis hebt over het onderwerp. Jan is hier zo'n beetje degene met de meeste SQL-kennis, en weet ook ontzettend veel over PHP.
Als je zelf niet zoveel kennis hebt over het onderwerp, moet je blij zijn met de hulp die je, zoals Jan al aangaf VRIJWILLIG krijgt. Als je zo blijft reageren, voel ik me in ieder geval niet meer geroepen om je te gaan helpen.

Edit:

en lees ook even mijn vorige post, toen ik nog niet zo was gestruikeld over de reactie
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Arend a

Arend a

08/10/2006 23:19:00
Quote Anchor link
Ik ben het hardgrondig met Robert eens.

Ik had niet zo'n onbehoorlijke houding verwacht. Je hebt namelijk NIETS te verwachten. Dr zitten hier mensen gewoon in hun vrije tijd jouw te helpen, en je bent ontzettend ondankbaar.

Er worden alternatieven/kritiek aangedragen op wat je wil: daar ben je het niet mee eens en gaat stug verder, en vervolgens ga je klagen dat mensen het niet genoeg voor je voorkauwen? Kom nou, zoek het dan lekker zelf uit.
 
Henry

Henry

09/10/2006 13:14:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
if (!defined('MODULE_FILE')) {
    die ("You can't access this file directly...");
}


define('INDEX_FILE', true);
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
include("header.php");
global $db;

function
displayCalendar($currYear=0,$currMonth=0) {

    //
    // get unix time for 1st of the month
    //

    $day1 = mktime(0,0,0,$currMonth,1,$currYear);
    //
    // get day of week it falls on
    // normally sun is day 0 but we want mon to be day 0
    // hence add 6, divide by 7 and get remainder (d+6)%7
    //

    $dow1 = (date('w',$day1)+6) % 7;
    //
    // get heading as October 2006
    //

    $calHead = date('F Y',$day1);
    
    $self = $_SERVER['PHP_SELF'];
echo <<<EOT
        <table border="0" cellspacing="0" style="border: 1pt solid silver">
        <tr>
          <td colspan="7" class="hd">$calHead</td>
        </tr>
        <tr>
          <th class="wd">M</th>
          <th class="wd">T</th>
          <th class="wd">W</th>
          <th class="wd">T</th>
          <th class="wd">F</th>
          <th class="we">S</th>
          <th class="we">S</th>
        </tr>
        <tr>
EOT
;

    //
    //  Blanks until 1st of month
    //

    for ($d=0;$d<$dow1;$d++) {
         $cl = ($d%7==5) || ($d%7==6) ? 'we' : 'wd';
         echo "<td class='$cl'>&nbsp;</td>";
    }

    $c = $dow1;
    //
    // get dates from the db table
    //

    $sql = "SELECT did FROM calendar
            WHERE YEAR(calendar_date) = '$currYear'
            AND MONTH(calendar_date) = '$currMonth'"
;
    $res = mysql_query($sql) or die (mysql_error());
    while (list($d) = mysql_fetch_row($res)) {
            // new row every 7 days
        if ($c%7==0) echo "</tr><tr>";
            // set style accordong to weekday or weekend
        $cl = ($c%7==5) || ($c%7==6) ? 'we' : 'wd';
            // show current day
        $st = ($d == $currDay) ? "style='border: 1pt solid #FF0000'" : '';
        
        echo "<td class=\"$cl\" $st>$d</td>\n";
        $c++;
    }

    
        // finish off the last row of the month
    while ($c++ % 7 != 0)  {
           $cl = ($c%7==6) || ($c%7==0) ? 'we' : 'wd';
           echo "<td class='$cl'>&nbsp;</td>";
    }

    echo "</tr></table>\n";
}

?>


<style type="text/css">
<!--

TH.wd {background: #99CC99}
TH.we {background: #999999}
TD.wea {background: #CCCCCC}
TD.we {background: #EEEEEE; }
TD.wd {background: #EEFFEE}
TD.wda {background: #AAFFAA}
TD.hd {background: #FFFFFF; color: #339900}

/* End of style section. Generated by AceHTML 04/02/05 */
-->
</style>


</head>
<body>

<?
$year
= '2006';
$month = '10';
$a = '2006';
$b = '11';
displayCalendar($year, $month);
include("footer.php");

?>


</body>
</html>
 
Robert Deiman

Robert Deiman

09/10/2006 13:43:00
Quote Anchor link
En nu? Krijg je foutmeldingen? Of werkt het gewoon? Wat is het probleem?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.