Tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Glen

Glen

22/11/2006 19:55:00
Quote Anchor link
Ik heb al een half uur liggen knoeien om een degelijke tabel te krijgen, maar helaas. De bedoeling is dat elke dag een nieuwe tabel krijgt. Kan iemand me verderhelpen aub?

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
<?php
     if($datum != $cur_datum) {
  

        print"<table  border=0 align=left>";
        print"<tr bordercolor=#084E89>";
        print"<td height=26 valign=top bgcolor=#999999>";
        print"$datum";
        print"</td>";
        print"</tr>";
  $cur_datum = $datum;
    }

            

        print"<tr>";
        print"<td  align=left valign=top bgcolor=#BCBCBC>";

    if    ($opdracht != $cur_opdracht) {
           print" <strong><font size=+1 face=verdana color=#0C5286> $opdracht</font></strong><br /><br />";
   $cur_opdracht = $opdracht;    
    }

    print" <font face=verdana><strong>Vak: </strong>$vak  <br /> ";
    print" <strong>Onderwerp:</strong> $onderwerp  <br /> ";
    print" <strong>Opgave:</strong> $opgave </font><br /><br /> ";
    print"</td>";
    print"</tr>";
    print"</table>";
?>
 
PHP hulp

PHP hulp

22/01/2025 08:00:14
 
Joren de Wit

Joren de Wit

22/11/2006 20:09:00
Quote Anchor link
Om te beginnen, hoe kom je aan de variabelen $datum en $opdracht? In welke variabele heb je de dagen staan waarvan je een nieuwe tabel wilt hebben?

Een klein voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$dagen
= array('maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag');

foreacht($dagen as $dag)
{

    echo '<table>';
    echo '<tr><td>'.$dag.'</td></tr>';
    echo '</table>';
}

?>


Nu heb je iedere dag in een eigen tabel. Bedoel je zoiets of wat anders?
 
Niek s

niek s

22/11/2006 20:11:00
Quote Anchor link
zet eens boven in je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>
 
Glen

Glen

24/11/2006 16:35:00
Quote Anchor link
Dit heb ik al staan, de gegevens worden uit de database gehaald. Maar er moet geen tabel komen voor een dag zonder iets in.

$datum = $dag[intval($Adate[3])] --> dit geeft altijd een fout, ik weet niet wat de waarde moet zijn waar die 3 staat.

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
<?php
while(list($id,$datum,$vak,$onderwerp,$opgave,$opdracht) = mysql_fetch_row($result)) {

    $maand = array('', 'Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November',
    'December' );
    $dag = array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag', 'Zondag');


    list($datum) = explode(' ',$datum);

    $Adate = explode('-',$datum);
    $datum = $dag[intval($Adate[3])] .' '. intval($Adate[2]) .' '. $maand[intval($Adate[1])] .' '. $Adate[0];

 if($datum != $cur_datum) {
  

        print"<table  border=0 align=left>";
        print"<tr bordercolor=#084E89>";
        print"<td height=26 valign=top bgcolor=#999999>";
        print"$datum";
        print"</td>";
        print"</tr>";
  $cur_datum = $datum;
    }

            

        print"<tr>";
        print"<td  align=left valign=top bgcolor=#BCBCBC>";

    if    ($opdracht != $cur_opdracht) {
           print" <strong><font size=+1 face=verdana color=#0C5286> $opdracht</font></strong><br /><br />";
   $cur_opdracht = $opdracht;    
    }

    print" <font face=verdana><strong>Vak: </strong>$vak  <br /> ";
    print" <strong>Onderwerp:</strong> $onderwerp  <br /> ";
    print" <strong>Opgave:</strong> $opgave </font><br /><br /> ";
    print"</td>";
    print"</tr>";
    print"</table>";
?>
Gewijzigd op 01/01/1970 01:00:00 door Glen
 
Joren de Wit

Joren de Wit

24/11/2006 17:09:00
Quote Anchor link
Zorg ervoor dat je je datum direct in het juiste formaat uit de database haalt. Dit doe je bijvoorbeeld met DATE_FORMAT():
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT DATE_FORMAT(datum, '%d-%m-%Y') as formatted_date
FROM tabel

Om de datum in het dd-mm-yyyy formaat op te halen. Als je alles in het nederlands wilt, is dat ook mogelijk alleen wordt de query dan even lastiger:
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
<?php
$sql
= "
    SELECT
        CONCAT (
            ELT ( DAYOFWEEK(datum),
                    'Zondag',
                    'Maandag',
                    'Dinsdag',
                    'Woensdag',
                    'Donderdag',
                    'Vrijdag',
                    'Zaterdag',
                ),
            ' ',
            DAY(datum),
            ' ',
            ELT ( MONTH(datum),
                    'Januari',
                    'Februari',
                    'Maart',
                    'April',
                    'Mei',
                    'Juni',
                    'Juli',
                    'Augustus',
                    'September',
                    'Oktober',
                    'November',
                    'December'
                ),
            ' ',
            YEAR(datum)
        ) AS formatted_datum
    FROM
        tabel
    "
;
?>


Dit geeft een datum terug in het formaat 'Vrijdag 24 November 2006'.
 
Glen

Glen

24/11/2006 18:32:00
Quote Anchor link
Dit is mijn huidige query, moet ik er dan 2 maken om het bovenstaande te kunnen toepassen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$query
="SELECT * FROM agenda  WHERE DATE(datum) > CURDATE()
        GROUP by datum,opdracht,vak,opgave,opdracht
        "
;
?>
 
Joren de Wit

Joren de Wit

24/11/2006 18:42:00
Quote Anchor link
Nee hoor, dat kan gewoon in 1 query. Op dit moment gebruik je een * om alle velden te selecteren. Vul liever gewoon de kolomnamen in die je wilt selecteren, behalve als je echt daadwerkelijk ALLE kolommen wilt selecteren.

Waarom heb je daarnaast zo'n uitgebreide GROUP BY clause, dat is nergens voor nodig. Ook is het niet nodig om de DATE() functie rond 'datum' te gebruik in de WHERE clause. Als je met CURDATE() werkt wordt er alleen naar het DATE gedeelte gekeken.

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
<?php
$sql
= "
    SELECT
        CONCAT (
            ELT ( DAYOFWEEK(datum),
                    'Zondag',
                    'Maandag',
                    'Dinsdag',
                    'Woensdag',
                    'Donderdag',
                    'Vrijdag',
                    'Zaterdag'                    
                ),
            ' ',
            DAY(datum),
            ' ',
            ELT ( MONTH(datum),
                    'Januari',
                    'Februari',
                    'Maart',
                    'April',
                    'Mei',
                    'Juni',
                    'Juli',
                    'Augustus',
                    'September',
                    'Oktober',
                    'November',
                    'December'
                ),
            ' ',
            YEAR(datum)
        ) AS formatted_datum,
        opdracht,
        vak,
        opgave,
        opdracht
    FROM
        agenda
    WHERE
        datum > CURDATE()
    "
;
?>

Edit:
foutje gecorrigeerd
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Glen

Glen

24/11/2006 18:49:00
Quote Anchor link
FOUT: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '), ' ', DAY(datum), ' ', ELT' at line 11

:S
 
Frank -

Frank -

24/11/2006 18:52:00
Quote Anchor link
Achter 'zaterdag' staat een komma te veel.
 
Glen

Glen

24/11/2006 19:00:00
Quote Anchor link
FOUT: FUNCTION onlinediary.ELT does not exist

PS: onlinediary = database
Gewijzigd op 01/01/1970 01:00:00 door Glen
 
Frank -

Frank -

24/11/2006 19:37:00
Quote Anchor link
Welke antieke versie van MySQL gebruik je? 4.1 is toch eigenlijk wel een minimum vereiste, oudere versies kun je niet met droge ogen een database noemen.
 
Glen

Glen

25/11/2006 13:29:00
Quote Anchor link
Server versie: 5.0.24a-community-nt
Gewijzigd op 01/01/1970 01:00:00 door Glen
 



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.