Door
Jaap den Dool
op 24-04-2017 19:44
gewijzigd op 24-04-2017 19:50
4.190 views
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:
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:
<?php
$result = mysql_query("SELECT * FROM registratiekaart WHERE id = '" . $_GET['id'] . "'")
?>
<?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.
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.
$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 {
-- 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?
-- 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.
Super kerel, het is me gelukt. Dit script heb ik nu gebruikt:
<?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 {
Het enige probleem is nu dat het lesuur niet weergeven wordt, maar daar ga ik even naar kijken.
[size=xsmall]Toevoeging op 24/04/2017 21:24:18:[/size]
Jaap den Dool op 24/04/2017 21:20:35
Super kerel, het is me gelukt. Dit script heb ik nu gebruikt:
<?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 {