Zoeken op leeftijd.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ano Niem

Ano Niem

29/07/2004 00:37:00
Quote Anchor link
Hey,
Ik heb geprobeert een script te maken waarmee je kan zoeken op leeftijd.
In de database staat alleen een geboortedatum ("d-m-Y") en ik kom er niet uit hoe ik daarmee kan zoeken op leeftijd.
Ik ben al zover dat ik heb bedacht dat je 2 data moet berekenen waar tussen iedereen de gezochte leeftijd heeft.

Heeft iemand al zo'n script of zou iemand dit kunnen maken?
Ik kom er niet meer uit :S

Mvg Sickness
 
PHP hulp

PHP hulp

27/11/2024 06:41:12
 
Dbr Br

Dbr Br

31/07/2004 08:24:00
Quote Anchor link
Ik weet het niet zeker, maar je wilt zoeker tussen twee datums kun je ook dit doen

"SELECT geboortedatum FROM table WHERE geboortedatum BETWEEN ". $datum1 . " AND " . $datum2
Gewijzigd op 31/07/2004 08:36:00 door Dbr Br
 
Ano Niem

Ano Niem

31/07/2004 12:43:00
Quote Anchor link
Maar als ik zoek op 17 jaar. Hoe zet ik dat dan om naar $datum1 en $datum2,
Want op deze query was ik ook al zo'n beetje gekomen maar dan iets anders

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
sql = "SELECT * FROM table WHERE gebdat > '#". $datum1 ."#' AND gebdat < '#". $datum2 ."#'";
?>


een datum hoor je in een query tussen # te zetten ;) ( tenminste wel in MsAcces )
 
PHP erik

PHP erik

31/07/2004 13:43:00
Quote Anchor link
MySQL ziet dit niet als datum, en zal dus naar het eerste getal kijken.

Eigenlijk moet je daarom Y-m-d gebruiken. Ik zou niet weten hoe je nu kan zoeken op leeftijd.
 
Dbr Br

Dbr Br

31/07/2004 14:04:00
Quote Anchor link
Als je zoekt op 17 jaar kun je dus zelf ook een dateformat maken waartussen een resultaat (kan) staan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$jaar
= date("Y");
$jaar -= 17;

$query = "SELECT geboortedatum FROM table WHERE geboortedatum = LIKE '" . $jaar . "%' ORDER by geboortedatum DESC";

?>


misschien?
Kun je niet in Mysql als je daarin het DATE format hebt ook zoiets doen als

select geboortedatum from table order by geboortedatum (Year)

t'is maar een gokje
Gewijzigd op 31/07/2004 14:09:00 door Dbr Br
 
Ano Niem

Ano Niem

31/07/2004 14:41:00
Quote Anchor link
K heb al een andere oplossing.
k heb ergens een snippet gevonden waarmee je makkelijk de leeftijd kan berekenen.
Dus ik haal nu alle gegevens op die voldoen aan andere zoekopdrachten. En dan bereken ik per result de leeftijd en geef alleen iets weer als de leeftijden overeen komen.

Toen kreeg ik een probleempje omdat me aantal treffers niet meer klopten (k gebruikte mysql_num_rows) Maar das ook al opgelost. Gewoon bij alles dat ie laat zien $i++ neerzetten en dan $i weergeven als aantal treffers :)

Maar in elk geval bedankt voor het meedenken :)
 
John de Boer

John de Boer

31/07/2004 21:50:00
Quote Anchor link
@Dave
Stel nou dat het januari is en degene jarig is in december, dan scheelt t bijna een jaar.
Dus de maanden moet je ook meenemen, net als de dag.

ik gebruik hiervoor de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
...
if ($maand < 0) {
            $leeftijd = $jaar-1;
        }
elseif ($maand == 0 AND $dag < 0) {
            $leeftijd = $jaar-1;
        }
else{
            $leeftijd = $jaar;
        }
...

?>


waarbij $jaar = $jaarnu - $jaartoen
$maand = $maandnu = $maandtoen
$dag = $dagnu - $dagtoen


Het lijkt mij de snelste en dus beste methode die jij voorstelt, Dave
Gewijzigd op 31/07/2004 21:52:00 door John de Boer
 
Ano Niem

Ano Niem

31/07/2004 22:38:00
Quote Anchor link
Zoals ik al zei probleem is opgelost.
En hij klopt nu op de dag precies :)
 

01/08/2004 10:19:00
Quote Anchor link
LOL dat kon mijn script wel eens zijn :P. Toch fijn om te zien dat mijn scripts ook door andere gebruikt worden ;)
 
Niels

Niels

01/08/2004 13:22:00
Quote Anchor link
Ik heb effe een mysql vraagje ? ...

Kun je ook doen dat als je een aantal dingen hebt opgeslagen in een db..
Je veld heet zeg maar `antwoord` en je de aantal dingen tellen die daar in zijn opgelsagen maar ze meoten het zelfde zijn..
Bijvoorbeeld een antwoord is Ja.
En je wilt alle antwoorden met ja tellen..
Is daar een script voor
Z0iets van

select count(antwoord) From `tabel` Where antwoord = ja
 
Dbr Br

Dbr Br

01/08/2004 14:17:00
Quote Anchor link
"SELECT count(antwoord) FROM tabelnaam WHERE antwoord = 'Ja'";
 
Niels

Niels

01/08/2004 14:33:00
Quote Anchor link
Thanks
 
Niels

Niels

01/08/2004 17:01:00
Quote Anchor link
Ik heb nu dit :

$update1query = "UPDATE `michiel_deelnemers` SET vraag1 = '" . $leeftijd . "' WHERE `naam` = '" . $naam . "'";

Maar als er nu 2 namen het zlefde zijn hoe neem ik dan de laatste naam ?
Order BY id DESC ?
Of werkt dat neit.. want toennet werkte het niet ,, :S
 
Dbr Br

Dbr Br

01/08/2004 22:23:00
Quote Anchor link
$update1query = "UPDATE michiel_deelnemers SET vraag1 = '" . $leeftijd . "' WHERE naam = '" . $naam . "'";

ALs je dit doet worden alle regels waar de naam hetzelfde is ge-update.. Wil je ze daarna dan eruithalen en als er 2 dezelfde zijn de laatste? Werkt dit niet?

"SELECT leeftijd FROM michiel_deelnemers WHERE naam = '" . $naam . "' ORDER BY id DESC LIMIT 0,1"
Gewijzigd op 01/08/2004 22:25:00 door Dbr Br
 
Niels

Niels

02/08/2004 00:01:00
Quote Anchor link
Was er eigenlijk al uit :P..

Heb het helemaal anders gedaan.. Maar evengoed bedankt dit komt nog wel een keer van pas
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.