Slayer8 Geschrieben 7. Oktober 2003 Teilen Geschrieben 7. Oktober 2003 Hallo zusammen, ich möchte mit PHP alle Monate zu einem Jahr nacheinander auslesen lassen und so für jedes Jahr alle vorhandenen Monate auszugeben. Anschließend sollen die Monate wählbar sein und bei Klick auf diesen werden Details angezeigt. Das sieht derzeit so aus: $Yearresult = mysql_query("SELECT DISTINCT Year FROM std_einzel WHERE RVID ='$Vertrag'",$db); while ($Yeardata = mysql_fetch_array($Yearresult)) { echo "<br>".$Yeardata[Year].": "; $Monthresult = mysql_query("SELECT DISTINCT Month FROM std_einzel WHERE RVID ='$Vertrag' AND Year ='$Yeardata[Year]'",$db); $Montdata = mysql_fetch_array($Monthresult); while ($Monthdata = mysql_fetch_array($Monthresult)) { echo "<a href=\"".$PHP_SELF."?Year=".$Yeardata[Year]."&Month=".$Monthdata[Month]."\"> ".$Monthdata[Month]." </a>"; }; }; Funktioniert auch fast, die Ausgabe erscheint jedoch so (den unterlegten Link stelle ich mal in < > da: 11 <stunden.php?Year=2002&Month=11> 12 <stunden.php?Year=2002&Month=12> 2 <stunden.php?Year=2003&Month=2> 3 <stunden.php?Year=2003&Month=3> Stimmt also, bis auf den ersten Monat, der wird abgeschnitten. Liegt vermutlich am Array (0...X), oder? Aber was ist an meiner Funktion denn falsch *seufz* ThX & Greetz Slayer8 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 7. Oktober 2003 Teilen Geschrieben 7. Oktober 2003 Hallo, wenn ich das jetzt richtig durchblickt habe, dann stammt Month aus der Datenbank. Was steht denn in der Tabelle? Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slayer8 Geschrieben 7. Oktober 2003 Autor Teilen Geschrieben 7. Oktober 2003 Genau, Jahr und Monat stehen beide in der Tabelle. Dort sind folgende Daten hinterlegt: Month___Year _10_____2002 _11_____2002 _12_____2002 _01_____2003 _02_____2003 _03_____2003 Natürlich in mehrfacher Ausfertigung, aber das DISTINCT sorgt ja dafür das je nur eines ausgegeben wird... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 7. Oktober 2003 Teilen Geschrieben 7. Oktober 2003 Was geben denn die beiden SQL Anweisungen auf der Datenbank aus? Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 7. Oktober 2003 Teilen Geschrieben 7. Oktober 2003 $Montdata = mysql_fetch_array($Monthresult); // erster Monat der fehlt while ($Monthdata = mysql_fetch_array($Monthresult)) { // die restlichen Monate } Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 9. Oktober 2003 Teilen Geschrieben 9. Oktober 2003 Vielleicht hilft dir ja dieser Code weiter, um die Monate in PHP auszugeben!? <?php // legt Monat und Jahr fest, wenn keine Angaben vorhanden sind if(!$monat) $monat=date("m"); if(!$jahr) $jahr=date("Y"); // Formular zum Auswählen eines bestimmten Monats echo "<form action='$PHP_SELF' method='post'>"; echo "<b>Monat:</b> <select name='monat' style='font-size:10px; font-family: Tahoma;'>"; for($i=1;$i<13;$i++) { echo"<option value='$i'"; if($monat==$i) echo " selected"; echo ">$i"; } echo "</select>"; echo "<b>Jahr:</b> <select name='jahr' style='font-size:10px; font-family: Tahoma;'>"; for($i=2000;$i<2038;$i++) { echo "<option value='$i'"; if($jahr==$i) echo " selected"; echo ">$i"; } echo "</select><br>"; echo "</td>"; echo "</tr><tr>"; echo "<td><hr size=1 color=blue noshade></td>"; echo "</tr><tr>"; echo "<td>"; $wochentage=array("Mo.","Di.","Mi.","Do.","Fr.","Sa.","So."); echo "<table><tr>"; for($i=0;$i<7;$i++) echo "<td align='center'><b>".$wochentage[$i]."</b></td>"; echo "</tr>"; /* ausgabe der Tage im Monat */ for($i=1;$i<32;$i++) { $datum = mktime(0,0,0,$monat,$i,$jahr); if(mktime(0,0,0,date("m"),date("d"),date("Y"))==$datum) { $fett="<b>"; $fett_a = "</b>"; } else {unset($fett); unset($fett_a);} $tag_der_woche = getdate($datum); $tag_der_woche = $tag_der_woche[wday]; if($tag_der_woche==1 || $i==1) echo "<tr>"; if($i==1 && $tag_der_woche!=1){ $colspan=$tag_der_woche-1; if($colspan<0) $colspan=6; echo "<td colspan=$colspan> </td>"; } if(checkdate($monat,$i,$jahr)) { echo "<td>".sprintf("%s".date("d",$datum)."%s",$fett,$fett_a)."</td>"; } if($tag_der_woche==0 || $i==31) echo "</tr>"; } echo "</td>"; echo "</tr>"; echo "</table>"; echo "</tr></table>"; echo "<input type='submit' value='Monat zeigen'></form>"; echo "</div>"; echo "<div align=right><form><input type=button value='schließen' onClick=self.close()></form></div>"; ?>[/php] Sozusagen als Gimmick gibts sowas hier (im Menü auf "Kalender" klicken). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 10. Oktober 2003 Teilen Geschrieben 10. Oktober 2003 Original geschrieben von FMG Vielleicht hilft dir ja dieser Code weiter, um die Monate in PHP auszugeben!? Und was hat das mit der Frage zu tun? Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slayer8 Geschrieben 10. Oktober 2003 Autor Teilen Geschrieben 10. Oktober 2003 Mein Script klappt mittlerweile, es lag an dem von Jaraz genannten "Problem". Mein Fehler *g* Aber trotzdem Danke.... Eine Frage am Rande, was mach mehr Sinn, zwischen PHP und HTML zu trennen <?php ?> <html> <?php ?> <html<?php ?>> <html> <?php ?> <html> Oder aber in PHP alle HTML Sachen mit einem Echo auszugeben ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 10. Oktober 2003 Teilen Geschrieben 10. Oktober 2003 Original geschrieben von Jaraz Und was hat das mit der Frage zu tun? Gruß Jaraz Sorry, ich wollte nurmal ne Möglichkeit einwerfen, um aufzuzeigen, dass es auch ohne SQL-Code geht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Slayer8 Geschrieben 10. Oktober 2003 Autor Teilen Geschrieben 10. Oktober 2003 Klar geht das auch ohne, aber ich brauche MySQL ja, da alle Monate in der Datenbank ausgegeben werden soll. Bzw. Alle Monate, die in der Datenbank verzeichnet und zu denen nähere Infos hinterlegt sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 11. Oktober 2003 Teilen Geschrieben 11. Oktober 2003 Es ist genau so wie Jaraz es gesagt hat. Es ist eine Anweisung zu viel im Quelltext. $Yearresult = mysql_query("SELECT DISTINCT Year FROM std_einzel WHERE RVID ='$Vertrag'",$db); while ($Yeardata = mysql_fetch_array($Yearresult)) { echo "<br>".$Yeardata[Year].": "; $Monthresult = mysql_query("SELECT DISTINCT Month FROM std_einzel WHERE RVID ='$Vertrag' AND Year ='$Yeardata[Year]'",$db); // $Montdata = mysql_fetch_array($Monthresult); //diese Anweisung ist zuviel while ($Monthdata = mysql_fetch_array($Monthresult)) { echo "<a href=\"".$PHP_SELF."?Year=".$Yeardata[Year]."&Month=".$Monthdata[Month]."\"> ".$Monthdata[Month]." </a>"; }; }; [/php] Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.