Hab ich probiert, bin leider an dem Umfang des Quelltexts gescheitert. kannste mir sagen wo genau? danke.
In einer Spalte nach dem DATE suchen, das am nähsten zurück liegt
Einklappen
Dieses Thema ist geschlossen.
X
X
-
hmm,
so sollte es gehen, ich hab die neuen Zeilen mit dem kommentar // ist neu !!!!! gekennzeichnet und die veränderten/erweiterten mit // ist erweitert !!! sollte nur ein paar sein !
Code:<?php $heutejahr = date("Y",time()); $heute = date("d.m.Y",time()); $timerer = date("m",time()); $timererer = date("d",time()); $timestamp = mktime(0,0,0,$timerer,$timererer,$heutejahr); $conn = mysql_connect("mysql.domainfactory.de", "xxx", "xxx"); if ($conn) { mysql_select_db("xxx",$conn); $result = mysql_query("SELECT name, tag FROM jahrgangsstufe",$conn); $doedel=1; $anzahl=1; while($zeileholen=mysql_fetch_array($result,$conn)) { $schueler[$anzahl]["name"] = $zeileholen["name"]; $schueler[$anzahl]["tag"] = $zeileholen["tag"]; $anzahl++; $doedel++; } $anzahl--; for ($i=1;$i<=$anzahl;$i++) { $datum = explode ("-",$schueler[$i]["tag"]); //splittet das Datum auf, wir brauchen nur tag und Monat $schueler[$i]["timestamp"] = mktime(0,0,0,$datum[1],$datum[2],$heutejahr); // jeder bekommt ein timestamp in diesem Jahr } for ($i=1;$i<=$anzahl;$i++) { $schueler[$i]["abgerechnet"] = $timestamp - $schueler[$i]["timestamp"]; // jetzt wird heute abgezogen } // so jetzt haben wir schonmal eine Liste , jetzt muss sie sortiert werden. // zuerst die postiven Absteigend, dann die negativen vom kleinsten an. // denn ddas geht dann ja von 31.12. runter auf heute. $positiv = 0; $negativ = 0; $heute = 0; for ($i=1;$i<=$anzahl;$i++) { if ( $schueler[$i]["abgerechnet"] > 0) { $positiv++; } if ( $schueler[$i]["abgerechnet"] < 0) { $negativ++; } } $dieshierzaehlt = 0; for ($i=1;$i<=$anzahl;$i++) { if ($schueler[$i]["abgerechnet"] == 0) { $reihenfolge[$dieshierzaehlt]["name"] = $schueler[$i]["name"]; $reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$i]["timestamp"]; // ist neu !!!!! $dieshierzaehlt++; } } for ($i=1;$i<=$positiv;$i++) { $momstand = 1000*24*60*60; // 1000 Tagegibt es nicht $aktuell = 0; for($n=1;$n<=$anzahl;$n++) { if($schueler[$n]["abgerechnet"] > 0) { if ($schueler[$n]["abgerechnet"] < $momstand) // wir suchen den kleinsten Abstand zu heute { $momstand = $schueler[$n]["abgerechnet"]; $aktuell = $n; } } } $reihenfolge[$dieshierzaehlt]["name"] = $schueler[$aktuell]["name"]; $reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$aktuell]["timestamp"]; // ist neu !!!! $dieshierzaehlt++; $schueler[$aktuell]["abgerechnet"] = 0; } for ($i=1;$i<=$negativ;$i++) { $momstand = 0; // 1000 Tage gibt es nicht $aktuell = 0; for($n=1;$n<=$anzahl;$n++) { if ($schueler[$n]["abgerechnet"] < 0) { if ($schueler[$n]["abgerechnet"] < $momstand) // wir suchen die kleinste Zahl { $momstand = $schueler[$n]["abgerechnet"]; $aktuell = $n; } } } $reihenfolge[$dieshierzaehlt]["name"] =$schueler[$aktuell]["name"]; $reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$aktuell]["timestamp"]; // ist neu !!!! $dieshierzaehlt++; $schueler[$aktuell]["abgerechnet"] = 0; } echo"<B><U>Als letztes hatten Geburtstag:</U></B><BR><BR>"; for($i=1;$i<=3;$i++) // gibt die ersten drei aus, ist variabel ! { echo $reihenfolge[$i]["name"]. " am ".date("d.M.Y",$reihenfolge[$i]["timestamp"])."<br>"; // ist erweitert !!!! } echo"<HR SIZE=\"1\">"; $heute_geburtstag = mysql_query("SELECT name FROM jahrgangsstufe WHERE DAYOFYEAR(tag)=DAYOFYEAR(NOW())"); while($row = mysql_fetch_array($heute_geburtstag)) { $geburtstagskind = $row[0]; } if (!$geburtstagskind) { echo "<FONT COLOR=\"FF0000\">Heute, am <B>"; echo date("d.m.y"); echo "</B> feiert niemand aus unserer Jahrgangsstufe Geburtstag. <BR></FONT>"; echo "<HR SIZE=\"1\">"; } else{ echo "<FONT COLOR=\"FF0000\">Heute, am <B>"; echo date("d.m.y"); echo "</B> feiert $geburtstagskind Geburtstag <BR></FONT>"; echo "<HR SIZE=\"1\">";} echo"<B><U>Als nächstes haben Geburtstag:</U></B><BR>"; for($i=$anzahl;$i>=$anzahl-3;$i--) // gibt die letzten drei aus,ist variabel ! { echo $reihenfolge[$i]["name"]." am "; // ist erweitert !!!!! echo date("d.M.Y",$reihenfolge[$i]["timestamp"])."<br>"; // ist neu !!!!! } } ?>
Kommentar
-
Hey danke....
es kommt noch ein kleines Fehlerchen, kannst du noch mal
auf die URL schauen http://www.larsi.net/abi2001/anfang.php
und dir anschauen wer als nächstes Geburtstag hat?
Da kommt als erstes "am 01.Jan 1970"
Ist bestimmt nur ein Flüchtigkeitsfehler...
Hier noch mal das Script.
Wenn das dann weg ist, dann haben wirs endlich geschafft!!!
<?php
$heutejahr = date("Y",time());
$heute = date("d.m.Y",time());
$timerer = date("m",time());
$timererer = date("d",time());
$timestamp = mktime(0,0,0,$timerer,$timererer,$heutejahr);
$conn = mysql_connect("mysql.domainfactory.de", "xxx", "xxx");
if ($conn)
{
mysql_select_db("xxx",$conn);
$result = mysql_query("SELECT name, tag FROM jahrgangsstufe",$conn);
$doedel=1;
$anzahl=1;
while($zeileholen=mysql_fetch_array($result,$conn))
{
$schueler[$anzahl]["name"] = $zeileholen["name"];
$schueler[$anzahl]["tag"] = $zeileholen["tag"];
$anzahl++;
$doedel++;
}
$anzahl--;
for ($i=1;$i<=$anzahl;$i++)
{
$datum = explode ("-",$schueler[$i]["tag"]); //splittet das Datum auf, wir brauchen nur tag und Monat
$schueler[$i]["timestamp"] = mktime(0,0,0,$datum[1],$datum[2],$heutejahr); // jeder bekommt ein timestamp in diesem Jahr
}
for ($i=1;$i<=$anzahl;$i++)
{
$schueler[$i]["abgerechnet"] = $timestamp - $schueler[$i]["timestamp"]; // jetzt wird heute abgezogen
}
// so jetzt haben wir schonmal eine Liste , jetzt muss sie sortiert werden.
// zuerst die postiven Absteigend, dann die negativen vom kleinsten an.
// denn ddas geht dann ja von 31.12. runter auf heute.
$positiv = 0;
$negativ = 0;
$heute = 0;
for ($i=1;$i<=$anzahl;$i++)
{
if ( $schueler[$i]["abgerechnet"] > 0)
{
$positiv++;
}
if ( $schueler[$i]["abgerechnet"] < 0)
{
$negativ++;
}
}
$dieshierzaehlt = 0;
for ($i=1;$i<=$anzahl;$i++)
{
if ($schueler[$i]["abgerechnet"] == 0)
{
$reihenfolge[$dieshierzaehlt]["name"] = $schueler[$i]["name"];
$reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$i]["timestamp"];
$dieshierzaehlt++;
}
}
for ($i=1;$i<=$positiv;$i++)
{
$momstand = 1000*24*60*60; // 1000 Tage gibt es nicht
$aktuell = 0;
for($n=1;$n<=$anzahl;$n++)
{
if ($schueler[$n]["abgerechnet"] > 0)
{
if ($schueler[$n]["abgerechnet"] < $momstand) // wir suchen den kleinsten Abstand zu heute
{
$momstand = $schueler[$n]["abgerechnet"];
$aktuell = $n;
}
}
}
$reihenfolge[$dieshierzaehlt]["name"] = $schueler[$aktuell]["name"];
$reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$aktuell]["timestamp"];
$dieshierzaehlt++;
$schueler[$aktuell]["abgerechnet"] = 0;
}
for ($i=1;$i<=$negativ;$i++)
{
$momstand = 0; // 1000 Tage gibt es nicht
$aktuell = 0;
for($n=1;$n<=$anzahl;$n++)
{
if ($schueler[$n]["abgerechnet"] < 0)
{
if ($schueler[$n]["abgerechnet"] < $momstand) // wir suchen die kleinste Zahl
{
$momstand = $schueler[$n]["abgerechnet"];
$aktuell = $n;
}
}
}
$reihenfolge[$dieshierzaehlt]["name"] = $schueler[$aktuell]["name"];
$reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$aktuell]["timestamp"];
$dieshierzaehlt++;
$schueler[$aktuell]["abgerechnet"] = 0;
}
echo"<B><U>Als letztes hatten Geburtstag:</U></B><BR><BR>";
for($i=1;$i<=3;$i++) // gibt die ersten drei aus, ist variabel !
{
echo $reihenfolge[$i]["name"]. " am ".date("d.M.Y",$reihenfolge[$i]["timestamp"])."<br>";
}
echo"<HR SIZE=\"1\">";
$heute_geburtstag = mysql_query("SELECT name FROM jahrgangsstufe WHERE DAYOFYEAR(tag)=DAYOFYEAR(NOW())");
while($row = mysql_fetch_array($heute_geburtstag))
{ $geburtstagskind = $row[0]; }
if (!$geburtstagskind)
{
echo "<FONT COLOR=\"FF0000\">Heute, am <B>"; echo date("d.m.y"); echo "</B> feiert niemand aus unserer Jahrgangsstufe Geburtstag. <BR></FONT>";
echo "<HR SIZE=\"1\">";
}
else{
echo "<FONT COLOR=\"FF0000\">Heute, am <B>"; echo date("d.m.y"); echo "</B> feiert $geburtstagskind Geburtstag <BR></FONT>";
echo "<HR SIZE=\"1\">";}
echo"<B><U>Als nächstes haben Geburtstag:</U></B><BR>";
for($i=$anzahl;$i>=$anzahl-3;$i--) // gibt die letzten drei aus, ist variabel !
{
echo $reihenfolge[$i]["name"]." am ";
echo date("d.M.Y",$reihenfolge[$i]["timestamp"])."<br>";
}
}
?>
Kommentar
-
for($i=$anzahl-1;$i>=$anzahl-3;$i--) // gibt die letzten drei aus, ist variabel !
Kommentar
-
Danke, hat funktioniert! Also designmäßig ist es jetzt
perfekt und gefält mir sehr gut!
Wie sollte es aber anders sein? Ich habe einen Bug entdeckt.
Heute ist der 20.12. Gestern hat er richtig angezeigt das jemand am 19. also gestern - HEUTE Geburtstag hat.
am 20. aber zeigt er den, der am 19. hatte nicht unter den letzten dreien mit auf.
Ich glaube ich hatte das schon mal, da war der jenige dann erst einen Tag später zu sehen. bin mir aber nich sicher. woran kann das liegen?
thanx, Larsi
Kommentar
-
DAYOFYEAR(tag)=DAYOFYEAR(NOW())
Ich weiß nicht, von wem du gehostet wirst, aber unter Umständen der Zeitverschiebung wegen...?
Kommentar
-
Das DAYOFYEAR(tag)=DAYOFYEAR(NOW()) funktioniert ja einwandfrei. Es wird nur benötigt für den Fall das Heute jemand geburtstag hat. und das klappt auch wunderbar.
Doch, wenn gestern jemand geburtstag hatte, dann wird er nicht angezeigt, bei denen die als letztes hatte...
werde von domainfactory.de gehostet. dürfte keine probleme geben.
irgendein wert scheint noch nicht zu stimmen für den fall das jemand einen tag vor heute geburtstag hatte...
Kommentar
-
wollt ihr nicht mal bei kleinem ein neues thread aufmachen? das geht ja gar nicht hierh.a.n.d.
Schmalle
http://impressed.by
http://blog.schmalenberger.it
Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
... nur ohne :-)
Kommentar
-
hmm,
schmalle du musst ja nicht jedesmal auf Seite eins anfangen zu lesen wenn du das Topic anschaust *ggg*
@Larsi,
hmm, also lass dir mal die ganze liste ausgeben und schaumal was so alles drin steht , dann erkennst du vielleicht ein System. Ich weiss jetzt nicht warum das nicht geht.
Kommentar
-
Das kam raus:
Ein Name fehlt, nämlich der der gestern geburtstag hatte...
----------------------------------------------
Philipp Böhmig am 17.Dec.2001
Silvia Wurm am 17.Dec.2001
Thomas Herklotz am 10.Dec.2001
Matthias Neubert am 06.Dec.2001
Katharina Kaiser am 21.Nov.2001
Anja Kallauch am 19.Nov.2001
Melanie Schreiber am 15.Nov.2001
Franziska Mittag am 12.Nov.2001
Ines Koch am 28.Oct.2001
Julia Hänsel am 18.Oct.2001
Claudia Querner am 01.Oct.2001
Yvonne Querner am 01.Oct.2001
Angela Herrmann am 24.Sep.2001
Markus Hartig am 23.Sep.2001
Daniel Großmann am 22.Sep.2001
Robert Neugabauer am 20.Sep.2001
Sebastian Flegel am 16.Sep.2001
Stefan Bosdorf am 15.Sep.2001
Manuela Winkler am 13.Sep.2001
Thomas Rentsch am 09.Sep.2001
Nadia Schnorrbusch am 03.Sep.2001
Katrin Menzel am 31.Aug.2001
Katja Röhl am 21.Aug.2001
Lars Großmann am 09.Aug.2001
Uwe Biscop am 09.Aug.2001
Dana Mühlbauer am 07.Aug.2001
Matthias Metzke am 06.Aug.2001
Matthias Zocher am 06.Aug.2001
Maik Kießling am 03.Aug.2001
Stephanie Naumann am 28.Jul.2001
Linn Truxa am 19.Jul.2001
Heike Hilbenz am 16.Jul.2001
Robert Endler am 16.Jul.2001
Claudia Schöne am 12.Jul.2001
Tina Weirauch am 09.Jul.2001
Claudia Schier am 08.Jul.2001
Martin Schubert am 08.Jul.2001
Nadine Lotzmann am 08.Jul.2001
Robert Magiera am 30.Jun.2001
Carsten Müller am 29.Jun.2001
Friederike Schöbel am 29.Jun.2001
Yvonne Kretzschmar am 23.Jun.2001
Kathrin Hantzsche am 21.Jun.2001
Sandro Haubold am 14.Jun.2001
Karin Hofmann am 13.Jun.2001
Anne Reimann am 05.Jun.2001
André Grobstieg am 02.Jun.2001
Anne Bergmann am 02.Jun.2001
Carina Hoppstock am 31.May.2001
Patrick Wernicke am 28.May.2001
Matthias Rothe am 26.May.2001
Evelyn Babatz am 21.May.2001
Jan Helas am 18.May.2001
Franziska Buchner am 13.May.2001
Jan Schulz am 12.May.2001
Frank Jahn am 30.Apr.2001
Janine Rooch am 28.Apr.2001
René Bonkowski am 19.Apr.2001
Emanuel Thomas am 17.Apr.2001
Nicole Schmidt am 11.Apr.2001
Ronny Otte am 05.Apr.2001
Katja Günther am 23.Mar.2001
Torsten Leuthold am 17.Mar.2001
Konrad Schütze am 26.Feb.2001
Magnus Thiemig am 26.Feb.2001
Robert Hantzsche am 19.Feb.2001
Rena Förster am 07.Feb.2001
Andreas Känner am 30.Jan.2001
Juliane Schlicke am 30.Jan.2001
Silvia Großmann am 21.Jan.2001
Steve Weidig am 13.Jan.2001
Andrej Balzer am 30.Nov.2000
Anja Böhme am 30.Nov.2000
Anja Kowalke am 30.Nov.2000
Anne Philip am 30.Nov.2000
Dirk Hantzsche am 30.Nov.2000
Fanny Nitschke am 30.Nov.2000
Gerd Hübner am 30.Nov.2000
Ilka Fiedler am 30.Nov.2000
Jan Lorber am 30.Nov.2000
Johannes Kuhnert am 30.Nov.2000
Katharina Mittag am 30.Nov.2000
Marc Paulitz am 30.Nov.2000
Marcel Lindner am 30.Nov.2000
Maria Barthel am 30.Nov.2000
Markus Starzetz am 30.Nov.2000
Martin Spillner am 30.Nov.2000
Matthias Böhm am 30.Nov.2000
Matthias Hommel am 30.Nov.2000
Michael Fuchs am 30.Nov.2000
René Mundt am 30.Nov.2000
Reni Gabel am 30.Nov.2000
Ronny Forke am 30.Nov.2000
Sebastian Kiontke am 30.Nov.2000
Sebastian Thieme am 30.Nov.2000
Steffi Berndt am 30.Nov.2000
Thomas Nebel am 30.Nov.2000
Thomas Wähnert am 30.Nov.2000
Tobias Klengel am 30.Nov.2000
Torsten Beger am 30.Nov.2000
André Krämer am 30.Dec.2001
Christiane Höfgen am 29.Dec.2001
Sven Kotte am 24.Dec.2001
am 01.Jan.1970
Kommentar
-
hmm,
seltsam, hab jetzt keine Idee dazu, vielleicht ist das die 1.1.1970 Leiche, hmm, warte mal ab was morgen passiert, wenn er dann immernoch weg ist ist es sehr seltsam, ansonsten ist es nur misterös, weiss gerade nicht an was es liegt , sorry.
Kommentar
Kommentar