Avatar billede stormdk Nybegynder
09. oktober 2005 - 20:31 Der er 7 kommentarer

Function redeclare() i forbindelse med MySQL

Hej exp!

Jeg er igang med et community, hvor jeg skal udregne alderen, og det går også fint nok så længe functionen kun skal udskrives en enkelt gang. Jeg skal udregne alderen ud fra 3 inputs (se evt. her http://www.penpal.frac.dk/new.php).

Min kode ser sådan her ud, og jeg får fejlmeldingen : Fatal error: Cannot redeclare age() (previously declared in /web/www/frac/users/penpal/profile.gb.php:144) in /web/www/frac/users/penpal/profile.gb.php on line 144

Hvilket må betyde at jeg ikke kan bruge funktionen 2 gange, men hvordan løser jeg dette problem, jeg skal jo udregne alderen?

$GetAuthor = mysql_query("SELECT * FROM users WHERE id = '$rs2[sender]' ORDER BY ID DESC");
while($rs3 = mysql_fetch_array($GetAuthor)){

function age( $day, $month, $year ) {
  $days = date("d") - $day ;
  $months = ( date("m") - $month ) * 30 ;
  $years = ( date("Y") - $year ) * 365 ;
  $laeg_sammen = ( $days + $months + $years ) / 365 ;
  return floor( $laeg_sammen ) ;

}
$age = age($rs3['born_day'],$rs3['born_month'],$rs3['born_year']);


Det skal bruges i forbindelse med en gæstebog til community'et, derfor er der flere queries, og derfor fejler funktionen :/
Avatar billede erikjacobsen Ekspert
09. oktober 2005 - 20:50 #1
Erklær function age  een gang i toppen af scriptet, eller i en include-fil. Du får en fejl når "function age" mødes anden gang.
Avatar billede ljm21 Praktikant
09. oktober 2005 - 20:59 #2
Eller med andre ord:

function age( $day, $month, $year ) {
  $days = date("d") - $day ;
  $months = ( date("m") - $month ) * 30 ;
  $years = ( date("Y") - $year ) * 365 ;
  $laeg_sammen = ( $days + $months + $years ) / 365 ;
  return floor( $laeg_sammen ) ;
}

$GetAuthor = mysql_query("SELECT * FROM users WHERE id = '$rs2[sender]' ORDER BY ID DESC");
while($rs3 = mysql_fetch_array($GetAuthor)){
  $age = age($rs3['born_day'],$rs3['born_month'],$rs3['born_year']);
}

Lars
Avatar billede stormdk Nybegynder
09. oktober 2005 - 21:11 #3
Tak drenge :) en af jer læg et svar, det er først til mølle princippet :)
Avatar billede ljm21 Praktikant
09. oktober 2005 - 21:13 #4
Det må være Eriks. Jeg har bare "skåret ud i pap".
Avatar billede erikjacobsen Ekspert
09. oktober 2005 - 21:16 #5
Jeg samler ikke på point, tak.
Avatar billede stormdk Nybegynder
09. oktober 2005 - 21:18 #6
Så der er ingen der er interesserede? Men endnu engang tak d'herrer :)
Avatar billede stormdk Nybegynder
09. oktober 2005 - 21:35 #7
Åbentbart ikke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester