Rekenen met data in SQL en PHP

Status
Niet open voor verdere reacties.

s.langeslag

Gebruiker
Lid geworden
27 feb 2006
Berichten
5
Hallo,

Ik ben een website over mijn band aan het maken maar heb nog niet zo veel verstand van PHP en SQL. Ik wil graag het volgende voor elkaar krijgen: ik wil onse optredens in een SQL-databse kunnen toevoegen en vervolgens moet een PHP-pagina deze shows weergeven en verdelen over een tussenkopje van de optredens die al geweest zijn en de optredens die moeten komen.

Ik zal dus met data moeten rekenen alleen vraag ik me af of ik dit in de database moet doen of dat ik de PHP-pagina die deze database leest moet laten rekenen. En hoe moet ik dit dan doen?

Alvast bedankt voor tips en/of uitleg.
 
dit kan je gewoon doen in php. Als dit ongeveer je database is.

Optredens
id | Plaats | Tijd | Datum

Als je de datum invoerd als time() (Info).
En je checked wat voor datum het nu is. Dan kan je het met een if / else ding goed krijgen (denk ik).

PHP:
<?
If ($optreden-datum > $datum-nu) { het optreden is al geweest }
else { het optreden is nog niet geweest geweest }
?>
Je moet zelf natuurlijk alles even uit de database halen en de variabelen aanmaken. En bij het if statemant kan je dan bijvoorbeeld de tekst rood maken en anders gewoon zwart. Of iets in die richting.
 
Laatst bewerkt:
Dankjewel voor de hulp, maar ik bedacht bij het lezen van je antwoord dat een 'select'-functie handiger zou zijn dan een 'if-else'-functie omdat ik niet onderscheid in de opmaak wil, maar onderscheid in de te verschijnen plaats op de pagina (ik wil eerst een lijst met het programma e daaronder een lijst met wat geweest is).

Ik heb daarom de volgende code bedacht:
PHP:
<?PHP

$nu = date(); 

SELECT news_subject FROM autosubmit_shows WHERE date < $nu;
?>

Ik krijg echter de volgende foutmelding:
Parse error: parse error, unexpected T_STRING in Y:\Program Files\Apache Group\Apache2\htdocs\slangeslag\showstest.php on line 19
Line 19 is de regel met 'select'. Ligt deze foutmelding aan de verschillende datumnotaties en zo ja, hoe verhelp ik dit dan? In de database gebruik ik de notatie yyyy-mm-dd.
 
je moet zo niet je database uitlezen. Dat doe je op een andere manier.

Misschien heb je hier wat aan: http://www.phphulp.nl/php/tutorials/3/52/
Daar wordt uitgelegd hoe je een nieuwssysteem maakt. Dus ook hoe je dingen uit je database kan halen. :thumb:

Ik moet nu zelf weg...:)
 
Nogmaals erg bedankt voor advies. Zoals ik al zei ben ik een beginner, maar ik begin het allemaal al steeds beter te snappen. Ik weet nu hoe je een php-script uit de database moet laten lezen, alleen loop ik nog steeds tegen een probleem aan.

Het rekenen met data gaat verkeerd. Ik heb een testpagina gemaakt en heb test-data ingevoerd in de database (één datum voor vandaag en één datum na vandaag). Op de test-php-pagina weergeeft hij echter beide data onder 'past'. Zie onderstaande links.

Wat gaat er verkeerd met de data? De data heb ik trouwens als volgt in de database gezet: 2006-03-04 (4 maart) en 2006-01-20 (20 januari).

Links:
Test-PHP-pagina
PHP-script in txt-formaat
 
Als je het nu zo doet (je hebt dan de variabele $nu niet nodig):
PHP:
  // Print 'comming up'
  $sql = "SELECT date, news_subject FROM autosubmit_shows WHERE date >= curdate()";
en de tweede:
PHP:
  // Print 'past'
  $sql = "SELECT date, news_subject FROM autosubmit_shows WHERE date < curdate()";

In de eerste heb ik < vervangen door >= Nu selecteer je alles van vandaag of in de toekomst. Bij de tweede selecteer je alles voor vandaag. Ik ga er wel van uit dat de kolom "date" ook daadwerkelijk de eigenschap date heeft, dat is wel nodig.
 
Het is dus idd niet mogelijk om te rekenen met dd-mm-yyyy of andere vormen daarvan. Je moet het opslaan als date(). En dan kan je het weer omzetten naar een normaal leesbare datum.

date() geeft aantal seconden of iets dergelijks weer vanaf 1 januari 1970
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan