cijfers omzetten in letters
Hopelijk kunnen jullie mij helpen.
In de database staan waarden die staan voor de maand:
dus 01 ,02, 03 etc.
Wat ik graag wil is dat wanneer ik deze ophaal uit de database dat ze dan later worden weergegeven als maandnaam: ipv cijfer.
dus maandcijfer 01 moet worden januari
het volgende heb ik al geprobeerd maar dat lukte niet....
Alvast bedankt voor jullie tijd en inzet!
CODE:
mysql_select_db($database_naam, $naam);
$query_rsArchief = "SELECT OnId, OnMaand, OnJaar FROM tblondernemers GROUP BY OnMaand ASC";
$rsArchief = mysql_query($query_rsArchief, $pyler) or die(mysql_error());
$row_rsArchief = mysql_fetch_assoc($rsArchief);
$totalRows_rsArchief = mysql_num_rows($rsArchief);
if ($row_rsArchief['OnMaand'] = "01") {
"januari";
}
if ($row_rsArchief['OnMaand'] = "02") {
"februari";
}
if ($row_rsArchief['OnMaand'] = "03") {
"maart";
}
if ($row_rsArchief['OnMaand'] = "04") {
"april";
}
if ($row_rsArchief['OnMaand'] = "05") {
"mei";
}
if ($row_rsArchief['OnMaand'] = "06") {
"juni";
}
if ($row_rsArchief['OnMaand'] = "07") {
"juli";
}
if ($row_rsArchief['OnMaand'] = "08") {
"augustus";
}
if ($row_rsArchief['OnMaand'] = "09") {
"september";
}
if ($row_rsArchief['OnMaand'] = "10") {
"oktober";
}
if ($row_rsArchief['OnMaand'] = "11") {
"november";
}
if ($row_rsArchief['OnMaand'] = "12") {
echo "december";
}
Overigens is dat if-then ding een beetje erg inefficient.
Probeer het eens met dit:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$monthnames = array(1 => "januari", "februari", "maart", "april",
"mei", "juni", "juli", "augustus",
"september", "oktober", "november", "december");
$monthname = $monthnames[(int)$row_rsArchief['OnMaand']];
echo $monthname;
"mei", "juni", "juli", "augustus",
"september", "oktober", "november", "december");
$monthname = $monthnames[(int)$row_rsArchief['OnMaand']];
echo $monthname;
De array $monthnames hoef je in principe maar 1x te definieren (ergens bovenaan in je script of zo). Als je in je script vaker een nummer naar een maand wilt converteren, hoef je alleen de constructie in regel 5 maar te gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door Willem vp
Code (php)
1
2
3
4
2
3
4
<?php
$sql = "SELECT id,essentie, DATE_FORMAT(datum, '%d-%m-%Y') AS datum
FROM tabel WHERE id = '".$_GET['id']."'";
?>
$sql = "SELECT id,essentie, DATE_FORMAT(datum, '%d-%m-%Y') AS datum
FROM tabel WHERE id = '".$_GET['id']."'";
?>
Gewijzigd op 01/01/1970 01:00:00 door The Ultimate
Ik denk dat het hier gaat om een klassiek gevalletje van "Allan, zet je spulletjes netjes in de kast". Hoe zet je een datum NETJES in een database. Iets waar we waarschijnlijk allemaal ooit wel eens mee te maken hebben gehad.
Een datum zet je niet per dag, maand en jaar los in rijen in de database. Gebruik ipv losse rijen 1 rij met formaat DATE. Dat scheelt een hoop gedoe.
Gewijzigd op 01/01/1970 01:00:00 door The Ultimate
En gebruik CODE tags!
wat ik wil maken is dat ik een overzicht heb met de maanden en dan daarachter het aantal in die maand.
Ik d8 dat het dan makkelijker zou zijn om deze zo in de tabel te zetten. :)
Er is wel een kolom met een hele datum aanwezig in die tabel.
Misschien moet ik die dan maar eens gaan selecteren ipv de maand.
Ik ga jullie voorbeelden proberen en zal het laten weten of het is gelukt!
Als de goede date al in de tabel staat, dan ga je toch niet moeilijk doen? :O
Ik heb het opgelost en ga ook geen benaming meer gebruiken voor de maand.
De SQL code =
Code (php)
1
SELECT COUNT(OnId) AS Totaal, DATE_FORMAT(OnDateAdd, '%m-%Y') AS Datum FROM tabelnaam GROUP BY Datum
Ook in mijn tabel heb ik de kolom voor de datum aangepast naar DATE.
Gewijzigd op 01/01/1970 01:00:00 door Allan de Bruin
DW is een leuk programma, maar ik blijf toch bij mijn old skool Notepad++
Benamingen kun je nog steeds gebruiken met DATE... (maar thoeft niet)
Succes ermee :)
Ja, dat meen ik. Ik weet ook dat je het met MySQL en date_format en weet-ik-veel-wat-al-niet-meer kan doen, maar dat was de vraag niet ;-)
Deze snippet werkt daarnaast ook als de maand niet uit een database wordt getrokken.
Ik mis in de reacties overigens de MySQL-functie MONTHNAME. Die lijkt me handiger dan ELT...
Gewijzigd op 01/01/1970 01:00:00 door Willem vp
Misschien kunnen jullie mij helpen als ik sorteer op datum met de volgende select:
Code (php)
1
2
3
2
3
SELECT NieuwsId, NieuwsOnderwerp, DATE_FORMAT( NieuwsDatum, '%d-%m-%Y' ) AS NieuwsDatum
FROM tblnieuws
ORDER BY NieuwsDatum DESC
FROM tblnieuws
ORDER BY NieuwsDatum DESC
dan krijg ik de volgende waarden terug:
31-08-2009
30-08-2009
30-08-2009
30-06-2009
17-08-2009
04-09-2009
03-09-2009
02-09-2009
Er word dus niet echt gesorteerd, alleen op de dag word er gesorteerd.
Dus ik heb het anders geprobeerd te sorteren:
Code (php)
1
2
3
2
3
SELECT NieuwsId, NieuwsOnderwerp, DATE_FORMAT( NieuwsDatum, '%d-%m-%Y' ) AS NieuwsDatum
FROM tblnieuws
ORDER BY 'DATE()' ASC
FROM tblnieuws
ORDER BY 'DATE()' ASC
Ook dat werkte niet. Het zou kunnen dat ik dan op maand zou moeten sorteren door het volgende toe te passen?
Code (php)
1
2
3
2
3
SELECT NieuwsId, NieuwsOnderwerp, DATE_FORMAT( NieuwsDatum, '%d-%m-%Y' ) AS NieuwsDatum
FROM tblnieuws
ORDER BY 'DATE(%d-%m-%Y)' ASC
FROM tblnieuws
ORDER BY 'DATE(%d-%m-%Y)' ASC
Mijn laatste poging:
Code (php)
1
2
3
2
3
SELECT NieuwsId, NieuwsOnderwerp, DATE_FORMAT( NieuwsDatum, '%d-%m-%Y' ) AS DATUM
FROM tblnieuws
ORDER BY DATUM
FROM tblnieuws
ORDER BY DATUM
Heeft iemand enig idee hoe en wat ik hier misschien fout doe?
lijkt ook niet te werken. De maanden worden niet goed weergegeven.
Gewijzigd op 01/01/1970 01:00:00 door Allan de Bruin
EDIT: Mijn vraag hier weggehaald en verplaatst naar een nieuw topic. Is andere vraag nl.