array vullen werkt niet
markla - 28/03/2012 21:58
PHP interesse
Misschien een hele domme vraag maar ik heb een functie gevonden die in theorie zou moeten doen wat ik wil.
het betreft deze functie http://www.tek-tips.com/faqs.cfm?fid=3493
de functie eist een bepaald formaat input. ik probeer dat
zo te doen:
While ($record = mysql_fetch_array($res[0]))
{
$begin = array ('year' => $record['birth_year'], 'month' => $record['birth_month'], 'day' => $record['birth_day']);
$end = array ('year' => $record['game_year'], 'month' => $record['game_month'], 'day' =>$record['game_day']);
echo'$begin'
echo'$end'
}
{
$begin = array ( 'year' => $record [ 'birth_year' ] , 'month' => $record [ 'birth_month' ] , 'day' => $record [ 'birth_day' ] ) ; $end = array ( 'year' => $record [ 'game_year' ] , 'month' => $record [ 'game_month' ] , 'day' => $record [ 'game_day' ] ) ;
}
(er zit meer code om heen maar het gaat mij nu even om het vullen van de array)
maar dan krijg ik als waarde de tekst array :-(
wat doe ik verkeerd?
8 antwoorden
Gesponsorde links
vinTage - 28/03/2012 22:10 (laatste wijziging 28/03/2012 22:12)
Nieuw lid
Als je een array aanmaakt, dan is het toch niet gek dat er een array uitgespuugd wordt ?
Maar ik verwacht dat als je ipv echo $begin en $end, dit doet:
While ($record = mysql_fetch_array($res[0]))
{
$begin = array ('year' => $record['birth_year'], 'month' => $record['birth_month'], 'day' => $record['birth_day']);
$end = array ('year' => $record['game_year'], 'month' => $record['game_month'], 'day' =>$record['game_day']);
echo date_difference ($begin, $end);
}
{
$begin = array ( 'year' => $record [ 'birth_year' ] , 'month' => $record [ 'birth_month' ] , 'day' => $record [ 'birth_day' ] ) ; $end = array ( 'year' => $record [ 'game_year' ] , 'month' => $record [ 'game_month' ] , 'day' => $record [ 'game_day' ] ) ; echo date_difference
( $begin , $end ) ;
}
het er op begint te lijken.
Een en ander zou imo ook wel iets deftiger kunnen via de query zelf, maar dat is mss offtopic ?
markla - 28/03/2012 22:26
PHP interesse
Klopt
ik ben nu alleen aan het uittesten of alle vars wel goed (gevuld) worden
Feitelijk wil ik dit doen :
[code=php]
$foo = date_difference ($begin, $end);
if ($foo !== FALSE)
{
$age_at_game= ($foo);
}
else
{
$age_at_game = '??';
}
[/code=php]
en dan de $age_at_game plaatsen waar ik hem nodig heb
markla - 28/03/2012 22:40
PHP interesse
@vinTage
Thanks
maar degelijke scripts heb ik door gespit maar dan krijg ik niet het resultaat dat ik wil hebben.
van een speler wil ik weten hoe oud (jaar ,maanden en weken) hij was op wedstrijd datum.
Dit schijnt best complex te zijn ivm schrikkeljaren lege geboortedata etc
nu kwam een (php) programmeur met eerder genoemd script. en ik kan de vars geboortedatum en wedstrijd datum zonder wel meegeven aan de function. Maar dan krijg ik errors.
Maar die functie zou moeten doen wat ik graag wil hebben, vandaar dat ik nu alleen nog naar de methode zoek om de juiste input te geven aan de functie.
in de query doe ik al:
DATE_FORMAT(p.Player_Geb_Date, '%Y%m%d') as birthdate,
DATE_FORMAT(g.Game_DateTime, '%Y%m%d')as gamedate,
DATE_FORMAT( p. Player_Geb_Date, '%Y%m%d' ) as birthdate,
DATE_FORMAT( g. Game_DateTime, '%Y%m%d' ) as gamedate,
vinTage - 28/03/2012 22:49
Nieuw lid
als je lege geboortedata hebt kun je er nooit iets met eender welk script
Sinds je met weken werkt ipv dagen, dan maakt een schrikkeljaar niet echt veel uit imo?
Nu weet ik niet wat je db output is als er 'geen' resultaat is, maar stel dat het een leeg array is, dan kun je bv zo iets doen:
echo count($begin) < 1 ? 'geen geboortejaar bekend' : date_difference ($begin, $end);
echo count ( $begin ) < 1 ?
'geen geboortejaar bekend' : date_difference
( $begin , $end ) ;
markla - 28/03/2012 23:08
PHP interesse
Als er geen geboortedatum is dan geeft de database NULL
de function date_difference vangt dat af.
wat ik ook doe met DATE_FORMAT de function date_difference EIST dat ik een array als input en dat zou het moeten werken
vinTage - 29/03/2012 21:47
Nieuw lid
markla schreef:
de function date_difference EIST dat ik een array als input en dat zou het moeten werken
markla schreef:
maar dan krijg ik als waarde de tekst array :-(
^^
Hetgeen ik suggereerde is dat je bv checked of $begin of $end wel een array is met waardes (count)
christophe195 - 31/03/2012 22:04
Lid
uitlezen...
print_r($begin);
print_r($eind);
Dan worden ze uitgelezen en weergegeven
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.