Geboortedatum naar leeftijd: opgezocht maar werkt niet
ik heb al verschillende manieren die ik vond geprobeerd, maar ze komen allemaal op een fout uit.
Ik heb een geboortedatum als date in mijn database staan, deze zou ik willen omzetten naar een leeftijd, ook zou ik als het de verjaardag is iets willen laten uitvoeren.
Ik heb al dingen gevonden waarbij je het via een query kan, maar ik denk steeds iets fout te doen aangezien ik bij het testen met or die werk (niet voor het uiteindelijke exemplaar) en jep, hij valt stil daar.
Een voorbeeld van zo'n query dat bij mij niet werkte:
$sql = "SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(GBdatum)), '%Y')+0 AS age FROM users";
$dp = mysql_query($sql);
$leeftijd = $dp['age'];
Voor de duidelijkheid: dit kan zeker en vast met een boel fouten zijn, anders maak ik dit topic toch niet aan?
Wat meldt mysql_error () en wat is de uitkomst van $age?
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/voorbeeld-1-het-ophalen-van-gegevens/1931/
Ik gebruikte deze link heel vaak toen ik ook vaak fouten maakte met query's bouwen.
Probeer het eens :)
@Diov ik zei nog net: ik gebruik voor het testen de die-functie, als hij daar niet op vastloopt betekent het toch dat hij geen fouten ziet dus dan zal dat toch ook niet helpen?
Code (php)
1
2
3
2
3
$sql = "SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(GBdatum)), '%Y')+0 AS age FROM users";
$dp = mysql_query($sql);
$leeftijd = $dp['age'];
$dp = mysql_query($sql);
$leeftijd = $dp['age'];
Dit ziet er toch anders uit.
En niets sterft, dus die() wordt niet vaak gebruikt.
En staan je errors aan?
Code (php)
1
2
3
4
5
2
3
4
5
<?php
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
?>
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
?>
Nogmaals: die word mss niet vaak gebruikt, maar als je er or die() bij zet en hij gaat wel gewoon verder, dan is er toch gewoon geen error?
Waarom probeer je het gewoon niet?
Ik heb geen glazen bol om jouw probleem te zien, sorry.
Kristof Hendrickx op 08/09/2013 10:52:24:
Ik heb al dingen gevonden waarbij je het via een query kan, maar ik denk steeds iets fout te doen aangezien ik bij het testen met or die werk (niet voor het uiteindelijke exemplaar) en jep, hij valt stil daar.
Een voorbeeld van zo'n query dat bij mij niet werkte:
$sql = "SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(GBdatum)), '%Y')+0 AS age FROM users";
$dp = mysql_query($sql);
$leeftijd = $dp['age'];
Voor de duidelijkheid: dit kan zeker en vast met een boel fouten zijn, anders maak ik dit topic toch niet aan?
Een voorbeeld van zo'n query dat bij mij niet werkte:
$sql = "SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(GBdatum)), '%Y')+0 AS age FROM users";
$dp = mysql_query($sql);
$leeftijd = $dp['age'];
Voor de duidelijkheid: dit kan zeker en vast met een boel fouten zijn, anders maak ik dit topic toch niet aan?
1) als mensen je aanspreken op die fouten, klink dan niet gelijk 'boos'. We/Ze proberen je te helpen.
2) door nu met or die te werken (ik zie het overigens niet in de code staan), kun je straks nog een keer alles gaan aanpassen om een nette foutafhandeling in te bouwen. En opnieuw alles testen. Waarom zo omslachtig? Doe het liever in 1x (goed).
Kristof Hendrickx op 08/09/2013 11:09:44:
@Diov ik zei nog net: ik gebruik voor het testen de die-functie, als hij daar niet op vastloopt betekent het toch dat hij geen fouten ziet dus dan zal dat toch ook niet helpen?
In je openingspost geef je aan dat hij stilvalt bij de 'die' en daarna geef je aan dat hij daar niet vastloopt. Wat is het nou?
Kortom: doe het goed. Bouw een nette foutafhandeling in en laat ons weten wat de foutmelding is. Als de query goed gaat, dan wordt het debuggen. Wat zit er in de variabele(n)? Waar stopt het script? Met alleen info 'het werkt niet', kunnen we niet zo veel.
Gewijzigd op 08/09/2013 11:28:29 door Obelix Idefix
Ik doe niet boos, of dat is toch zeker niet mijn bedoeling.
Ik heb de or die hier in het script eruit gelaten omdat ik dacht dat dit niet echt van belang was voor jullie.
en ik zal eens kijken naar het inplanten van de foutmelding op jullie manier.
En ik heb blijkbaar de error gevonden, deze zat niet echt in de query, hoewel ik daar wel nog WHERE Username = ... heb toegevoegd zodat hij enkel van die persoon neemt, de fout zat dat ik een mysql_result moest uitvoeren xd
Gewijzigd op 08/09/2013 11:44:07 door Kristof Hendrickx