[php] string splitten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dag..

ik ben bezig met een klein scriptje op onze website, alleen krijg ik iets niet voor elkaar: (ben een echte noob met php)

Ik wil uit een database alle geboortedata opvragen, en dan kijken of iemand jarig is.

Ik vermoed dat je die moet splitten op een of andere manier, maar hoe???
Ik hoop echt dat jullie me een beetje kunnen helpen!!

in de database is de datum als 0000-00-00 opgeslagen.
dus moet je dan iets als explode("-", $row['birthday']) gebruiken, maar ik weet totaal niet hoe

ik heb het volgende al:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
$currentdate = date("d F Y");
$query = "SELECT * FROM user";
$result = $db->query ($query);



echo "<table class='appletwidth' cellspacing='1' cellpadding='0'>\n";
echo "  <tr><td class='applettitle'>Wij Feliciteren vandaag $currentdate</td></tr>\n";
echo "  <tr><td class='appletcontent'>\n";
echo "                  <table width='100%' border='0' cellspacing='0' cellpadding='0'>\n";
if ($result) {
        while ($row = $db->fetch_array ()) {
              echo "<tr><td class='appletentry'> <b>·</b> <a href='".$row['url']."'>".$row['username']."</a></td></tr>\n";
        }
        }
echo "                  </table>\n";
echo "          </td>\n";
echo "  </tr>\n";
echo "</table>\n";
?>

[ Voor 22% gewijzigd door Verwijderd op 17-12-2002 00:55 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

- Je database heeft een data/datetime type waar je heel netjes de datum mee kan opslaan, speciaal daarvoor bedoelt. Gebruik het dan ook, tenzij je een goede reden hebt dat niet te doen.
- Met een where-clause kan je veel makkelijker en veel beter in je select query al alle jarigen eruit halen, zie een willekeurige sql/php-tutorial hoe zoiets werkt.
- Een tekstuele datum kan je met de verschillende date/time-functies van php omzetten naar timestamps en die kan je heel makkelijk vergelijken met elkaar.

Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 14:09

Kaastosti

Vrolijkheid alom!

Je kunt simpelweg split() gebruiken.. zit al in php.
$blaat = split('-',$datum);
De string (of datum) wordt dat opgesplitst bij het '-' teken en in een array gezet.
Die kun je benaderen met $blaat['0'], $blaat['1'] en ga zo maar verder.

Op die manier kun je dus in je forumulieren een datum uit een sql database 'normaal' weergeven. Je verwisselt simpelweg array[0] en array[2], zodat je de nederlandse notatie krijgt.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Acties:
  • 0 Henk 'm!

  • 2
  • Registratie: November 2000
  • Laatst online: 26-05-2021

2

Kaastosti schreef op 17 december 2002 @ 02:08:
Je kunt simpelweg split() gebruiken.. zit al in php.
$blaat = split('-',$datum);
De string (of datum) wordt dat opgesplitst bij het '-' teken en in een array gezet.
Die kun je benaderen met $blaat['0'], $blaat['1'] en ga zo maar verder.

Op die manier kun je dus in je forumulieren een datum uit een sql database 'normaal' weergeven. Je verwisselt simpelweg array[0] en array[2], zodat je de nederlandse notatie krijgt.
dat heet explode(), beter in dit geval (geen regexps)

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

2 schreef op 17 december 2002 @ 03:14:
[...]


dat heet explode(), beter in dit geval (geen regexps)
En om het dan helemaal compleet te maken:

PHP:
1
list($dag, $maand, $jaar) = explode("-", $datum);


(heb je ook geen onduidelijke arrayvariabelen meer :) )

[ Voor 3% gewijzigd door thomaske op 17-12-2002 10:08 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Sabbi
  • Registratie: December 2000
  • Laatst online: 19:43

Sabbi

je denkt aan mij.

strtotime() was waar acm naar refereerde dus, de manier om een rare datum naar een timestamp te converteren waar je vervolgens weer een hoop mee kan doen...

maar ik zou inderdaad niet zo'n wazig data-formaat gebruiken. (gebruik een date/time object voor een database, of een timestamp in een file.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

onbegrijpelijk, hoeveel fratsen er uitgehaald worden om met date/time typen te werken in php/mysql terwijl MySQL zo ongeveer alles ondersteunt wat je ook maar kunt wensen om met data en tijden te werken.

lees die manual gewoon

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
we hebben ook gewoon de standaard date-functie gebruikt in mysql... ik wilde alleen weten hoe je moest splitsen...

maar dat weet ik nou.. bedankt!!

Acties:
  • 0 Henk 'm!

  • 2
  • Registratie: November 2000
  • Laatst online: 26-05-2021

2

Volgens mij zijn er 2 manieren om datum/tijd handig in mysql op te slaan; als unix_timestamp waarna je in php dmv date() daar makkelijk leesbare tijd van kan maken, of als timestamp, en dan kun je in je query de format van de tijd aangeven hoe je hem in je query-resultaat wilt hebben. Als je dus hyphens in je database hebt staan is er ergens iets misgegaan.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Mja, en daar houdt het nog niet mee op, want MySQL kan ook prima met UNIX timestamps overweg, dmv van de functies UNIX_TIMESTAMP en FROM_UNIXTIME om een unix timestamp resp. van en naar een native datumtype over te zetten.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1