Avatar billede michaeltryl Seniormester
25. september 2006 - 22:01 Der er 11 kommentarer og
1 løsning

hvem fylder år idag

jeg har nedstående script, men vil godt have til at stå over tabellen hvem der fylder år på dags dato.
jeg har prøvet på mange måder, men kan ikke lige regne ud hvordan jeg gør dato feltet i databasen brugere hedder birth
er der en som kan hjælpe

<div>
<table><tr>
<td class="event" align="center"><b>Bruger</td>
<td class="event" align="center"><b>Fødselsdag</b></td>
<td class="event" align="center"><b>Alder</b></td>
</div><div class="lille">
<?
$nutid = date("Y/m/d G:i:s");
$nudato = date("Y/m/d");

$get = mysql_query("SELECT *, DATE_FORMAT(birth, '%d') AS dato, DATE_FORMAT(birth, '%m') AS maaned, DATE_FORMAT(birth, '%Y') AS aar FROM brugere WHERE birth > '0' ORDER BY maaned, dato ASC") or die(mysql_error()); // henter Brugernavn som er 1?
while ( $show = mysql_fetch_array($get) )
{

$id = $show[Id];
$bruger = $show[Brugernavn];
$dato = $show[dato];
$maaned = $show[maaned];
$aar = $show[aar];
$brugerbirth = $show[birth];

$idag = date("Y") . date("m") . date("d");
$birth = $aar . $maaned . $dato;
$alder = substr($idag - $birth,0,-4);


echo"</tr><tr><td class='event'><a href='$side/bruger/profil.php?id=$id'>$bruger</a></td>";
echo"<td class='event'>$dato-$maaned-$aar</td>";
echo"<td class='event'>$alder</td>";
}
?>
</tr>
</table>
</div>
Avatar billede michaeltryl Seniormester
26. september 2006 - 09:49 #1
selvom jeg har en post i databasen som ser sådan ud
1982-09-26 00:00:00 udskriver den kode "ingen" selvom jeg vil mene den skulle udskrive brugernavnet på den som har fødselsdag

<?
$ndato = date("d");
$nmaaned = date("m");

$fodidag = mysql_query("SELECT *, DATE_FORMAT(birth, '%d') AS dato, DATE_FORMAT(birth, '%m') AS maaned FROM brugere") or die(mysql_error()); // henter Brugernavn som er 1?
while ( $g = mysql_fetch_array($fodidag) )
{
$brugeridag = $g[Brugernavn];
$dato = $g[dato];
$maaned = $g[maaned];
}
if($dato == $ndato && $maaned == $nmaaned)
echo $brugeridag;

else
echo "ingen";

?>
Avatar billede michael_stim Ekspert
26. september 2006 - 09:53 #2
Og Brugernavn er med stort B?
Avatar billede michael_stim Ekspert
26. september 2006 - 09:54 #3
Og så er det altid en god idé at sætte plinger om:
$brugeridag = $g['Brugernavn'];
$dato = $g['dato'];
$maaned = $g['maaned'];
Avatar billede michael_stim Ekspert
26. september 2006 - 09:55 #4
Og så skal du have if'en inde i din while ;o)
Avatar billede michaeltryl Seniormester
26. september 2006 - 10:07 #5
jeg har prøvet at sætte den ind i min while men så udskriver den dette
ingenmichaelingeningeningeningeningeningeningen  hvor michael har fødselsdag i dag.
jeg er klar over at jeg på en eller anden måde skal have dette
$dato == $ndato && $maaned == $nmaaned sat ind i min forspørgsel, sådan der kun bliver hentet dem ud der har fødselsdag idag der har jeg prøvet med

$fodidag = mysql_query("SELECT *, DATE_FORMAT(birth, '%d') AS dato, DATE_FORMAT(birth, '%m') AS maaned FROM brugere WHERE maaned=$nmaaned AND dato=$ndato") or die(mysql_error()); // henter Brugernavn som er 1?

både med og uden plinger har også erstattet AND med ,  uden hel
Avatar billede michael_stim Ekspert
26. september 2006 - 10:21 #6
$fodidag = mysql_query("SELECT * FROM brugere WHERE DATE_FORMAT(birth, '%d') = '".$ndato ."' AND DATE_FORMAT(birth, '%m') = '". $nmaaned ."'") or die(mysql_error()); // henter Brugernavn som er 1?
Avatar billede michaeltryl Seniormester
26. september 2006 - 10:46 #7
yes sådan. kom med et svar så lukker jeg her
Avatar billede michael_stim Ekspert
26. september 2006 - 10:48 #8
Vassego' ;o)
Avatar billede michaeltryl Seniormester
26. september 2006 - 11:37 #9
jeg er lige stødt ind i et lille problem som jeg håber du kan hjælpe med.
den laver fint listen hvis en eller flere bruger har fødselsdag den pågældende dag, men hvis ingen brugere har fødselsdag skal den skriv
Ingen brugere har fødselsdag i dag

det gør den bare ikke

<?
$ndato = date("d");
$nmaaned = date("m");

$fodidag = mysql_query("SELECT *, COUNT(*) AS antal, DATE_FORMAT(birth, '%d') AS ndato, DATE_FORMAT(birth, '%m') AS nmaaned, DATE_FORMAT(birth, '%Y') AS naar FROM brugere WHERE DATE_FORMAT(birth, '%d') = '".$ndato ."' AND DATE_FORMAT(birth, '%m') = '". $nmaaned ."' GROUP BY Brugernavn") or die(mysql_error());
while ( $g = mysql_fetch_array($fodidag) )
{
$nantal = $g['antal'];
$nbrugeridag = $g['Brugernavn'];
$ndato = $g['ndato'];
$nmaaned = $g['nmaaned'];
$naar = $g['naar'];
$nidag = date("Y") . date("m") . date("d");
$nbirth = $naar . $nmaaned . $ndato;
$nalder = substr($nidag - $nbirth,0,-4);

if($nantal > 0)
echo "<div>$nbrugeridag fylder idag $nalder år<br>";
else
echo "<div>Ingen brugere har fødselsdag idag";

}
?>
</div>
Avatar billede michaeltryl Seniormester
26. september 2006 - 11:38 #10
hvis jeg prøver med
echo $nantal skriver den fint antallet hvis en eller flere fylder år
men igenting hvis den er lig 0
Avatar billede michael_stim Ekspert
26. september 2006 - 11:58 #11
så kan du køre en num_rows. Kan ikke lige huske syntaxen:
if(mysql_num_rows($fodidag)>0){//evt. num_rows
while....

}
else{
echo "Ingen brugere har fødselsdag idag";
}
Avatar billede michaeltryl Seniormester
26. september 2006 - 12:14 #12
okay tak jeg kigger på det
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Capgemini Danmark A/S

Client Partner

JP/Politikens Hus

Digital Workplace Supporter

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Vil du være med til at opbygge og udvikle Forsvarets dronekapacitet?

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Senior Data Engineers til dataplatform i Forsvaret