Datum omzetten in Dagnaam

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jaap den Dool

Jaap den Dool

24/04/2017 19:44:12
Quote Anchor link
Goedenavond,

ik probeer een website in elkaar te zetten waar de personen een datum invoeren wanneer een ander een afspraak heeft. Dit invoeren lukt wel d.m.v. invoeren via een invoerformulier in de database die er als volgt uitziet.
Afbeelding database


De uitvoer van de opgevraagde gegevens uit deze database is als volgt:

Afbeelding Registratiekaart

Dit ziet er prima uit alleen 1 ding krijg ik niet gedaan. Dat de datum niet als datum weergeven wordt, maar als dagnaam. 01-01-2017 wordt uitgelezen als Zondag bijvoorbeeld.
Script voor de uitvoer is als volgt:

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
<?php
      mysql_connect("localhost", "-------------", "---------------");
      mysql_select_db("-----------");

      $result = mysql_query("SELECT * FROM registratiekaart WHERE id = '" . $_GET['id'] . "'")
                                        or die(mysql_error());
    
     echo "<table>";
        while($data = mysql_fetch_assoc($result)) {
            echo "<tr>";
                     echo "<th colspan='8'> Paraafkaart werken in de studiewerkruimte </th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<th colspan='8'>" . $data["voornaam"] . " " . $data["tussenvoegsel"] . " " . $data["achternaam"] . "</th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td> datum </td>";
                     echo "<td> lesuur </td>";
                     echo "<td> paraaf </td>";
                     echo "<td colspan='5'> opmerkingen </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum1"] . "</td>";
                     echo "<td>" . $data["lesuur1"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum2"] . "</td>";
                     echo "<td>" . $data["lesuur2"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum3"] . "</td>";
                     echo "<td>" . $data["lesuur3"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
                    
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum4"] . "</td>";
                     echo "<td>" . $data["lesuur4"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum5"] . "</td>";
                     echo "<td>" . $data["lesuur5"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
        }

      echo "</table>";
    
?>


Mijn vraag is dus of iemand dit kan veranderen zodat de dagnaam weergeven wordt. Dank u alvast.
Gewijzigd op 24/04/2017 19:50:47 door Jaap den Dool
 
PHP hulp

PHP hulp

15/11/2024 20:32:49
 
Ben van Velzen

Ben van Velzen

24/04/2017 19:56:27
Quote Anchor link
Wat voor type kolom is je datum?
 
- Ariën  -
Beheerder

- Ariën -

24/04/2017 19:59:00
Quote Anchor link
Je bent je er ook van bewust dat je de oude mysql-functies gebruikt die in PHP 7 verleden tijd zullen zijn?
Ik raad je aan om eens over te stappen op de functies van de mysqli-driver of de PDO-driver.
 
Jaap den Dool

Jaap den Dool

24/04/2017 20:03:21
Quote Anchor link
Ben van Velzen op 24/04/2017 19:56:27:
Wat voor type kolom is je datum?

De type kolom voor de datums is varchar(255)






Toevoeging op 24/04/2017 20:04:47:

- Ariën - op 24/04/2017 19:59:00:
Je bent je er ook van bewust dat je de oude mysql-functies gebruikt die in PHP 7 verleden tijd zullen zijn?
Ik raad je aan om eens over te stappen op de functies van de mysqli-driver of de PDO-driver.

Ik was me hier niet van bewust, maar dit is een eindproject. Al krijg ik dit 'gefixt' is de opdracht voldoende afgerond volgens de begeleider dus laat dit maar zo denk ik. :)
Neem dit wel mee bij mijn volgende project. Danku
 
Ben van Velzen

Ben van Velzen

24/04/2017 20:06:14
Quote Anchor link
>> De type kolom voor de datums is varchar(255)
Ouch. Dan zou ik eens beginnen dat aan te passen naar een kolom die geschikt is voor datums. Iets als DATE. Dan kun je van daaruit verder werken.
 
Jaap den Dool

Jaap den Dool

24/04/2017 20:12:08
Quote Anchor link
Kolommen zijn aangepast en hebben nu de type DATE.
 
- Ariën  -
Beheerder

- Ariën -

24/04/2017 20:23:52
Quote Anchor link
Bij date in MySQL is het formaat YYYY-MM-DD. Zorg ervoor dat je de datums zo hebt opgeslagen.
 
Jaap den Dool

Jaap den Dool

24/04/2017 20:30:39
Quote Anchor link
Ha, heb ik gedaan. Datums worden goed opgeslagen.
Heb er zelf ook al wat tijd in zitten, maar heb nu dit gevonden.
Dit als echo weergeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<td>" . date_format($date["datum1"], 'Y-m-d '). "</td>";
?>

i.p.v.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<td>" . $data["datum1"] . "</td>";
?>

Nu wordt de datum helemaal niet weergeven. Is het gewoon een wit vlak.
Gewijzigd op 24/04/2017 20:32:32 door Jaap den Dool
 
- Ariën  -
Beheerder

- Ariën -

24/04/2017 20:33:56
Quote Anchor link
Ik denk dat je DATE_FORMAT() in je SELECT-query bedoelt.
 
Jaap den Dool

Jaap den Dool

24/04/2017 20:38:30
Quote Anchor link
Het zou goed kunnen dat u gelijk heeft, maar dit gaat me even boven de pet. Wat zou ik dan aan moeten passen in de SELECT-query?
 
- Ariën  -
Beheerder

- Ariën -

24/04/2017 20:40:48
 
Jaap den Dool

Jaap den Dool

24/04/2017 20:47:25
Quote Anchor link
Die heb ik al meerdere keren doorgenomen de afgelopen week, maar ik krijg het niet in mijn script verwerkt.
Ik moet deze functie hebben van de DATE_FORMAT ga ik vanuit: %W Weekday name (Sunday-Saturday)
Maar waar moet ik dit dan aanpassen in de query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$result
= mysql_query("SELECT * FROM registratiekaart WHERE id = '" . $_GET['id'] . "'")
?>
Gewijzigd op 24/04/2017 20:48:28 door Jaap den Dool
 
Ben van Velzen

Ben van Velzen

24/04/2017 20:54:34
Quote Anchor link
Door niet * te selecteren, maar wat je nodig hebt, waaronder je DATE_FORMAT regel.
 
Jaap den Dool

Jaap den Dool

24/04/2017 20:57:04
Quote Anchor link
Aha, SELECT * vervangen door .........?
 
- Ariën  -
Beheerder

- Ariën -

24/04/2017 20:57:53
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$result
= mysql_query("SELECT DATE_FORMAT(datum1,'%W') AS day_date1, dit, dat, dus, zo FROM registratiekaart WHERE id = '" . mysql_real_escape_string($_GET['id'])."'");
if($result === false) {
    echo "Er is een fout opgetreden: ".mysql_error();
}
else {
    // hier je afhandeling als de query gelukt is.
    }
    
?>

Verder is het niet netjes en ook in-effecient om velden te nummeren. Probeer zulke databaseconstructies te ontwijken.
Gewijzigd op 24/04/2017 20:59:08 door - Ariën -
 
Jaap den Dool

Jaap den Dool

24/04/2017 21:07:22
Quote Anchor link
Ik heb je query gekopieerd, maar ik moet eerlijk toegeven dat ik hem niet helemaal volg. Het is ook wel handig om te weten dat ik geen programmeur ben of iets doe in de ICT-wereld. Dit is een middelbaar schoolproject namelijk.

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
<?php
      mysql_connect("-------------");
      mysql_select_db("-------");

                                        
    $result = mysql_query("SELECT DATE_FORMAT(datum1,'%W') AS day_date1 FROM registratiekaart WHERE id = '" . mysql_real_escape_string($_GET['id'])."'");
if($result === false) {
    echo "Er is een fout opgetreden: ".mysql_error();
}
else {

    
    
     echo "<table>";
        while($data = mysql_fetch_assoc($result)) {
            echo "<tr>";
                     echo "<th colspan='8'> Paraafkaart werken in de studiewerkruimte </th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<th colspan='8'>" . $data["voornaam"] . " " . $data["tussenvoegsel"] . " " . $data["achternaam"] . "</th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td> datum </td>";
                     echo "<td> lesuur </td>";
                     echo "<td> paraaf </td>";
                     echo "<td colspan='5'> opmerkingen </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum1"]. "</td>";
                     echo "<td>" . $data["lesuur1"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum2"] . "</td>";
                     echo "<td>" . $data["lesuur2"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum3"] . "</td>";
                     echo "<td>" . $data["lesuur3"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
                    
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum4"] . "</td>";
                     echo "<td>" . $data["lesuur4"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data["datum5"] . "</td>";
                     echo "<td>" . $data["lesuur5"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
        }

      echo "</table>";
     }

?>


Dit werkt niet, maar wat gaat er hier fout? Alvast bedankt voor alles.
Gewijzigd op 24/04/2017 21:10:18 door - Ariën -
 
Aad B

Aad B

24/04/2017 21:10:39
Quote Anchor link
-- Verder is het niet netjes en ook in-effecient om velden te nummeren. Probeer zulke databaseconstructies te ontwijken.
Meer specifiek: Het advies is dus om te normaliseren, je gegevens zoveel mogelijk in de derde normaalvorm afbeelden in je database. De vraag kan nu bijvoorbeeld zijn: Hoe sla je datum6 op wanneer dat nodig blijkt te zijn? Maak je dan een attribuut dtum6 erbij? enzovoort tot datum365?
 
- Ariën  -
Beheerder

- Ariën -

24/04/2017 21:11:21
Quote Anchor link
"AS day_date1" staat er in je query. Dus je moet dan ook day_date1 gebruiken in de index van je $data-variabele.
 
Jaap den Dool

Jaap den Dool

24/04/2017 21:11:59
Quote Anchor link
Aad B op 24/04/2017 21:10:39:
-- Verder is het niet netjes en ook in-effecient om velden te nummeren. Probeer zulke databaseconstructies te ontwijken.
Meer specifiek: Het advies is dus om te normaliseren, je gegevens zoveel mogelijk in de derde normaalvorm afbeelden in je database. De vraag kan nu bijvoorbeeld zijn: Hoe sla je datum6 op wanneer dat nodig blijkt te zijn? Maak je dan een attribuut dtum6 erbij? enzovoort tot datum365?

Dat zal niet nodig zijn. Je geeft maar vijf dagen voor een week. Het enige wat ik nog geregeld moet krijgen is het weergeven van een dagnaam en dat lukt me nu juist niet.
 
- Ariën  -
Beheerder

- Ariën -

24/04/2017 21:16:00
Quote Anchor link
Hint: Misschien kan het wat extra punten scoren als je het genormaliseerd aanpakt ;-)

En om je vraag te beantwoorden: Zie mijn reactie.
 
Jaap den Dool

Jaap den Dool

24/04/2017 21:20:35
Quote Anchor link
Super kerel, het is me gelukt. Dit script heb ik nu gebruikt:
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
<?php
      mysql_connect("-------------");
      mysql_select_db("--------");

                                        
    $result = mysql_query("SELECT DATE_FORMAT(datum1,'%W') AS day_date1, DATE_FORMAT(datum2,'%W') AS day_date2, DATE_FORMAT(datum3,'%W') AS day_date3, DATE_FORMAT(datum4,'%W') AS day_date4, DATE_FORMAT(datum5,'%W') AS day_date5 FROM registratiekaart WHERE id = '" . mysql_real_escape_string($_GET['id'])."'");
if($result === false) {
    echo "Er is een fout opgetreden: ".mysql_error();
}
else {

    
    
     echo "<table>";
        while($data = mysql_fetch_assoc($result)) {
            echo "<tr>";
                     echo "<th colspan='8'> Paraafkaart werken in de studiewerkruimte </th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<th colspan='8'>" . $data["voornaam"] . " " . $data["tussenvoegsel"] . " " . $data["achternaam"] . "</th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td> datum </td>";
                     echo "<td> lesuur </td>";
                     echo "<td> paraaf </td>";
                     echo "<td colspan='5'> opmerkingen </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date1]. "</td>";
                     echo "<td>" . $data["lesuur1"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date2] . "</td>";
                     echo "<td>" . $data["lesuur2"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date3] . "</td>";
                     echo "<td>" . $data["lesuur3"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
                    
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date4] . "</td>";
                     echo "<td>" . $data["lesuur4"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date5] . "</td>";
                     echo "<td>" . $data[lesuur5] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
        }

      echo "</table>";
     }

?>


Het enige probleem is nu dat het lesuur niet weergeven wordt, maar daar ga ik even naar kijken.


Toevoeging op 24/04/2017 21:24:18:

Jaap den Dool op 24/04/2017 21:20:35:
Super kerel, het is me gelukt. Dit script heb ik nu gebruikt:
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
<?php
      mysql_connect("localhost", "", "");
      mysql_select_db("");

                                        
    $result = mysql_query("SELECT DATE_FORMAT(datum1,'%W') AS day_date1, DATE_FORMAT(datum2,'%W') AS day_date2, DATE_FORMAT(datum3,'%W') AS day_date3, DATE_FORMAT(datum4,'%W') AS day_date4, DATE_FORMAT(datum5,'%W') AS day_date5 FROM registratiekaart WHERE id = '" . mysql_real_escape_string($_GET['id'])."'");
if($result === false) {
    echo "Er is een fout opgetreden: ".mysql_error();
}
else {

    
    
     echo "<table>";
        while($data = mysql_fetch_assoc($result)) {
            echo "<tr>";
                     echo "<th colspan='8'> Paraafkaart werken in de studiewerkruimte </th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<th colspan='8'>" . $data["voornaam"] . " " . $data["tussenvoegsel"] . " " . $data["achternaam"] . "</th>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td> datum </td>";
                     echo "<td> lesuur </td>";
                     echo "<td> paraaf </td>";
                     echo "<td colspan='5'> opmerkingen </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date1]. "</td>";
                     echo "<td>" . $data["lesuur1"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date2] . "</td>";
                     echo "<td>" . $data["lesuur2"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date3] . "</td>";
                     echo "<td>" . $data["lesuur3"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
                    
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date4] . "</td>";
                     echo "<td>" . $data["lesuur4"] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
            echo "<tr>";
                     echo "<td>" . $data[day_date5] . "</td>";
                     echo "<td>" . $data[lesuur5] . "</td>";
                     echo "<td> </td>";
                     echo "<td> </td>";
            echo "</tr>";
        }

      echo "</table>";
     }

?>


Het enige probleem is nu dat het lesuur niet weergeven wordt, maar daar ga ik even naar kijken.
Gewijzigd op 24/04/2017 21:26:11 door - Ariën -
 

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.