gechger
Goto Top

Auswahlliste mit Tagesdatum vorbelegt, aber keine Auswahl früherer Monate möglich

Ich arbeite gerade an einem Script, welches einem User erlauben soll, Daten aus einer Datenbank mit auswählbarem von-bis Datumsbereich zu holen

Hallo Forum,

leider habe ich gerade einen Knoten im Kopf und komme nicht weiter.
In einem Script biete ich einem User an, über Pull-Down Auswahl Daten aus einer Datenbank zu holen.

Er soll den Datum-von Bereich eingeben, den Daten-bis Bereich und den User auswählen, der die Daten erfasst hat. Die PullDowns für das Datum sollen als Standard den aktuellen Tag anzeigen. Das Script sieht bisher so aus:

<?
$akttag=(date("d"));  
$aktmonat=(date("m"));  
$aktjahr=(date("y"));  

?>

<form action="aendern.php" method="post" >  
<tr>
<td>
 </td>
 </tr>
  <tr>
    <td>
    <select name="tagvon" size="1" >  
    <option value="01" <?if ($akttag=='01'){?>selected<?}?>>01</option>  
    <option value="02" <?if ($akttag=='02'){?>selected<?}?>>02</option>  
    <option value="03" <?if ($akttag=='03'){?>selected<?}?>>03</option>  
    <option value="04" <?if ($akttag=='04'){?>selected<?}?>>04</option>  
    <option value="05" <?if ($akttag=='05'){?>selected<?}?>>05</option>  
    <option value="06" <?if ($akttag=='06'){?>selected<?}?> >06</option>  
    <option value="07" <?if ($akttag=='07'){?>selected<?}?>>07</option>  
    <option value="08" <?if ($akttag=='08'){?>selected<?}?>>08</option>  
    <option value="09" <?if ($akttag=='09'){?>selected<?}?>>09</option>  
    <option value="10" <?if ($akttag=='10'){?>selected<?}?>>10</option>  
    <option value="11" <?if ($akttag=='11'){?>selected<?}?>>11</option>  
    <option value="12" <?if ($akttag=='12'){?>selected<?}?>>12</option>  
    <option value="13" <?if ($akttag=='13'){?>selected<?}?>>13</option>  
    <option value="14" <?if ($akttag=='14'){?>selected<?}?>>14</option>  
    <option value="15" <?if ($akttag=='15'){?>selected<?}?>>15</option>  
    <option value="16" <?if ($akttag=='16'){?>selected<?}?>>16</option>  
    <option value="17" <?if ($akttag=='17'){?>selected<?}?>>17</option>  
    <option value="18" <?if ($akttag=='18'){?>selected<?}?>>18</option>  
    <option value="19" <?if ($akttag=='19'){?>selected<?}?>>19</option>  
    <option value="20" <?if ($akttag=='20'){?>selected<?}?>>20</option>  
    <option value="21" <?if ($akttag=='21'){?>selected<?}?>>21</option>  
    <option value="22" <?if ($akttag=='22'){?>selected<?}?>>22</option>  
    <option value="23" <?if ($akttag=='23'){?>selected<?}?>>23</option>  
    <option value="24" <?if ($akttag=='24'){?>selected<?}?>>24</option>  
    <option value="25" <?if ($akttag=='25'){?>selected<?}?>>25</option>  
    <option value="26" <?if ($akttag=='26'){?>selected<?}?>>26</option>  
    <option value="27" <?if ($akttag=='27'){?>selected<?}?>>27</option>  
    <option value="28" <?if ($akttag=='28'){?>selected<?}?>>28</option>  
    <option value="29" <?if ($akttag=='29'){?>selected<?}?>>29</option>  
    <option value="30" <?if ($akttag=='30'){?>selected<?}?>>30</option>  
    <option value="31" <?if ($akttag=='31'){?>selected<?}?>>31</option>  
    </select>
    </td>
    <td>
    <select name="monatvon" size="1" >  
    <option value="01" <?if ($aktmonat=='01') { ?>selected<?}?>>Januar</option>  
    <option value="02" <?if ($aktmonat=='02') { ?>selected<?}?>>Februar</option>  
    <option value="03" <?if ($aktmonat=='03') { ?>selected<?}?>>März</option>  
    <option value="04" <?if ($aktmonat=='04') { ?>selected<?}?>>April</option>  
    <option value="05" <?if ($aktmonat=='05') { ?>selected<?}?>>Mai</option>  
    <option value="06" <?if ($aktmonat=='06') { ?>selected<?}?>>Juni</option>  
    <option value="07" <?if ($aktmonat=='07') { ?>selected<?}?> >Juli</option>  
    <option value="08" <?if ($aktmonat=='08') { ?>selected<?}?>>August</option>  
    <option value="09" <?if ($aktmonat=='09') { ?>selected<?}?>>September</option>  
    <option value="10" <?if ($aktmonat=='10') { ?>selected<?}?>>Oktober</option>  
    <option value="11" <?if ($aktmonat=='11') { ?>selected<?}?>>November</option>  
    <option value="12" <?if ($aktmonat=='12') { ?>selected<?}?>>Dezember</option>  
    </select>
     </td>
     <td>
    <select name="jahrvon" size="1" >  
    <option value="2009" <?if ($aktjahr=='09'){ ?>selected<?}?> >2009</option>  
    <option value="2010" <?if ($aktjahr=='10'){ ?>selected<?}?>>2010</option>  
    <option value="2011" <?if ($aktjahr=='11'){ ?>selected<?}?>>2011</option>  
    <option value="2012" <?if ($aktjahr=='12'){ ?>selected<?}?>>2012</option>  
    <option value="2013" <?if ($aktjahr=='13'){ ?>selected<?}?>>2013</option>  
    <option value="2014" <?if ($aktjahr=='14'){ ?>selected<?}?>>2014</option>  
    <option value="2015" <?if ($aktjahr=='15'){ ?>selected<?}?>>2015</option>  
    <option value="2016" <?if ($aktjahr=='16'){ ?>selected<?}?>>2016</option>  
    <option value="2017" <?if ($aktjahr=='17'){ ?>selected<?}?>>2017</option>  
    <option value="2018" <?if ($aktjahr=='18'){ ?>selected<?}?>>2018</option>  
    <option value="2019" <?if ($aktjahr=='19'){ ?>selected<?}?>>2019</option>  
    <option value="2020" <?if ($aktjahr=='20'){ ?>selected<?}?>>2020</option>  
    </select>
     </td>
     <td width="25">  
     </td>
     <td>
    <select name="tagbis" size="1" >  
    <option value="01" <?if ($akttag=='01'){?>selected<?}?>>01</option>  
    <option value="02" <?if ($akttag=='02'){?>selected<?}?>>02</option>  
    <option value="03" <?if ($akttag=='03'){?>selected<?}?>>03</option>  
    <option value="04" <?if ($akttag=='04'){?>selected<?}?>>04</option>  
    <option value="05" <?if ($akttag=='05'){?>selected<?}?>>05</option>  
    <option value="06" <?if ($akttag=='06'){?>selected<?}?> >06</option>  
    <option value="07" <?if ($akttag=='07'){?>selected<?}?>>07</option>  
    <option value="08" <?if ($akttag=='08'){?>selected<?}?>>08</option>  
    <option value="09" <?if ($akttag=='09'){?>selected<?}?>>09</option>  
    <option value="10" <?if ($akttag=='10'){?>selected<?}?>>10</option>  
    <option value="11" <?if ($akttag=='11'){?>selected<?}?>>11</option>  
    <option value="12" <?if ($akttag=='12'){?>selected<?}?>>12</option>  
    <option value="13" <?if ($akttag=='13'){?>selected<?}?>>13</option>  
    <option value="14" <?if ($akttag=='14'){?>selected<?}?>>14</option>  
    <option value="15" <?if ($akttag=='15'){?>selected<?}?>>15</option>  
    <option value="16" <?if ($akttag=='16'){?>selected<?}?>>16</option>  
    <option value="17" <?if ($akttag=='17'){?>selected<?}?>>17</option>  
    <option value="18" <?if ($akttag=='18'){?>selected<?}?>>18</option>  
    <option value="19" <?if ($akttag=='19'){?>selected<?}?>>19</option>  
    <option value="20" <?if ($akttag=='20'){?>selected<?}?>>20</option>  
    <option value="21" <?if ($akttag=='21'){?>selected<?}?>>21</option>  
    <option value="22" <?if ($akttag=='22'){?>selected<?}?>>22</option>  
    <option value="23" <?if ($akttag=='23'){?>selected<?}?>>23</option>  
    <option value="24" <?if ($akttag=='24'){?>selected<?}?>>24</option>  
    <option value="25" <?if ($akttag=='25'){?>selected<?}?>>25</option>  
    <option value="26" <?if ($akttag=='26'){?>selected<?}?>>26</option>  
    <option value="27" <?if ($akttag=='27'){?>selected<?}?>>27</option>  
    <option value="28" <?if ($akttag=='28'){?>selected<?}?>>28</option>  
    <option value="29" <?if ($akttag=='29'){?>selected<?}?>>29</option>  
    <option value="30" <?if ($akttag=='30'){?>selected<?}?>>30</option>  
    <option value="31" <?if ($akttag=='31'){?>selected<?}?>>31</option>  
    </select>
    </td>
    <td>
    <select name="monatbis" size="1" >  
    <option value="01" <?if ($aktmonat=='01') { ?>selected<?}?>>Januar</option>  
    <option value="02" <?if ($aktmonat=='02') { ?>selected<?}?>>Februar</option>  
    <option value="03" <?if ($aktmonat=='03') { ?>selected<?}?>>März</option>  
    <option value="04" <?if ($aktmonat=='04') { ?>selected<?}?>>April</option>  
    <option value="05" <?if ($aktmonat=='05') { ?>selected<?}?>>Mai</option>  
    <option value="06" <?if ($aktmonat=='06') { ?>selected<?}?>>Juni</option>  
    <option value="07" <?if ($aktmonat=='07') { ?>selected<?}?> >Juli</option>  
    <option value="08" <?if ($aktmonat=='08') { ?>selected<?}?>>August</option>  
    <option value="09" <?if ($aktmonat=='09') { ?>selected<?}?>>September</option>  
    <option value="10" <?if ($aktmonat=='10') { ?>selected<?}?>>Oktober</option>  
    <option value="11" <?if ($aktmonat=='11') { ?>selected<?}?>>November</option>  
    <option value="12" <?if ($aktmonat=='12') { ?>selected<?}?>>Dezember</option>  
    </select>
     </td>
     <td>
    <select name="jahrbis" size="1" >  
    <option value="2009" <?if ($aktjahr=='09'){ ?>selected<?}?> >2009</option>  
    <option value="2010" <?if ($aktjahr=='10'){ ?>selected<?}?>>2010</option>  
    <option value="2011" <?if ($aktjahr=='11'){ ?>selected<?}?>>2011</option>  
    <option value="2012" <?if ($aktjahr=='12'){ ?>selected<?}?>>2012</option>  
    <option value="2013" <?if ($aktjahr=='13'){ ?>selected<?}?>>2013</option>  
    <option value="2014" <?if ($aktjahr=='14'){ ?>selected<?}?>>2014</option>  
    <option value="2015" <?if ($aktjahr=='15'){ ?>selected<?}?>>2015</option>  
    <option value="2016" <?if ($aktjahr=='16'){ ?>selected<?}?>>2016</option>  
    <option value="2017" <?if ($aktjahr=='17'){ ?>selected<?}?>>2017</option>  
    <option value="2018" <?if ($aktjahr=='18'){ ?>selected<?}?>>2018</option>  
    <option value="2019" <?if ($aktjahr=='19'){ ?>selected<?}?>>2019</option>  
    <option value="2020" <?if ($aktjahr=='20'){ ?>selected<?}?>>2020</option>  
    </select>
     </td>
     <td width="25">  
     </td>
     <td>


<?php
error_reporting(E_ALL); #zeig alle Fehler
ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden  

//Verbindung zur Datenbank herstellen


  $cldb = mysql_connect($_SESSION['host'], $_SESSION['dbuser'], $_SESSION['passwort']) or die(mysql_error());  
  mysql_select_db($_SESSION['db']);  
  $sql = "SELECT * FROM ".$_SESSION['tab']."  ";  
  $result = mysql_query($sql) OR die(mysql_error());



  ?>
<select name="nachname" size="1">  
<?php
        while ($row = mysql_fetch_assoc($result)) {
        echo '<option value= "'. $row['name'] .'" > '. $row['name']. '</option>'."\n";  

}
?>
</select>
</td>

</table>
<table>
        <tr>
         <td width="150" ><input type="submit" value="Daten anzeigen"></td>  
         <td width="175"><input type="reset" value="Abbrechen"></td>  
            </tr>

</tr>
</table>
</form>
<table border="1">  
         <tr>

         </tr>
</table>

<?
@$datumvon=$_POST["tagvon"].".".$_POST["monatvon"].".".$_POST["jahrvon"];  
@$datumbis=$_POST["tagbis"].".".$_POST["monatbis"].".".$_POST["jahrbis"];  
@$namecheck=$_POST["nachname"];  

$sql1 = "SELECT * FROM ".$_SESSION['tabdat']." INNER JOIN ".$_SESSION['tab']." ON ".$_SESSION['tabdat'].".userid = ".$_SESSION['tab'].".userid  where (datum >= '$datumvon') and (datum <= '$datumbis') and (name = '$namecheck') order by datum";  
//echo "$sql1","<br>"; 

$result1 = mysql_query($sql1) OR die(mysql_error());
while ($row1 = mysql_fetch_assoc($result1)) {
         //echo "<pre>"; 
         //print_r($row1);
         //echo "</pre>"; 
         if (@$_POST["nachname"] == @$row1["name"]){  
?>

<table border="1" >  
         <tr>
                 <td width="120">Datum</td>  
                 <td width="120">Userid</td>  
                 <td width="180">Name</td>  
         </tr>
         <tr>
                 <td width="120"  bgcolor="#FFFFFF"><? echo $row1["datum"]; ?></td>  
                 <td width="120" bgcolor="#FFFFFF"><? echo $row1["userid"]; ?></td>  
                 <td width="180" bgcolor="#FFFFFF"><? echo $row1["name"]; ?></td>  

         </tr>
         <tr>
                 <td width="250">Projekt</td>  
                 <td width="250">Auftrag</td>  
                 <td width="250">Einsatz</td>  
                 <td width="100">Stunden</td>  
         </tr>
         <tr>
                 <td width="250" bgcolor="#FFFFFF"><? echo $row1["projekt"]; ?></td>  
                 <td width="250" bgcolor="#FFFFFF"><? echo $row1["auftrag"]; ?></td>  
                 <td width="250" bgcolor="#FFFFFF"><? echo $row1["einsatz"]; ?></td>  
                 <td width="100" align="center" bgcolor="#FFFFFF"><? echo $row1["zeit"]; ?></td>  
         </tr>
         <tr height="25"><td height="25" ></td>  
         </tr>
</table>





<?

                 }
         }

?>


Mein Problem ist jetzt, daß ich keine Daten vom Vormonat bekomme, sondern nur vom aktuellen Monat Juli. Ich vermute, daß die IF-Abfrage
<option value="07" <?if ($aktmonat=='07') { ?>selected<?}?> >Juli</option>
die Ausgabe des Monats 6 verhindert, weil der aktuelle Monat ja der Monat 7 ist.

Ich müßte also eine else Abfrage einbauen, aber habe gerade keine Idee wie die aussehen sollte.
Oder ich brauche vielleicht einen komplett anderen Ansatz, um meine Ziele zu erreichen:

Auswahl Datum von, Auswahl Datum bis, Auswahl User, Voreinstellung des Datums auf aktuellen Tag.

Jede Idee hilft weiter (wie immer face-smile )
Schöne Grüße
Christof

Content-Key: 120057

Url: https://administrator.de/contentid/120057

Printed on: April 16, 2024 at 14:04 o'clock

Member: empreality
empreality Jul 08, 2009 at 20:11:23 (UTC)
Goto Top
schon mal was von schleifen gehört?

echo "<select name=\"tagvon\">";
for ($tag=1; $tag <= 31; $tag++) {
echo "<option value=\"$tag\" ";
if ($akttag==$tag) echo "selected ";
echo ">$tag</option>";
}


Von welchem Typ ist die Datumsspalte in der DB-Tabelle ?
Member: gechger
gechger Jul 08, 2009 at 20:17:03 (UTC)
Goto Top
wow,

an dieser Stelle eine Schleife einbauen, auf diese Idee bin ich echt noch nicht gekommen. Das sieht aber vielversprechend aus.

Vielen Dank für die prompte Hilfe

Schöne Grüße
Christof
Member: empreality
empreality Jul 08, 2009 at 20:23:39 (UTC)
Goto Top
Die Monate kannst du dir mal in ein Array stecken:

$arrmonat = array("Januar", "Februar", "März", "April", "Mai", "Juni",
"Juli", "August", "September", "Oktober","November","Dezember");

Und dann in der Schleife mit $arrmonat[$monat] ausgeben.

Benutzt du DATE in der DB?
Member: gechger
gechger Jul 09, 2009 at 10:37:29 (UTC)
Goto Top
Hallo,

ich verwende drei Datumsfelder.
Datum beinhaltet ein Datum, daß vom User eingegeben wird. Dieses Feld frage ich hier ab. (varchar)
erfdatum ist ein Timestamp, der automatisch beim Speichern des Datensatzes erzeugt wird. (timestamp)
Dann gibt es noch ein aenderdat, um zu dokumentieren, wann ein bestehender Datensatz geändert worden ist. (varchar)


Schöne Grüße
Christof
Member: gechger
gechger Jul 10, 2009 at 07:22:50 (UTC)
Goto Top
Hallo,

Dein Script funktioniert im Prinzip einwandfrei. Ich habe jetzt nur noch ein Problem mit der Formatierung der Datumsfelder. Ich verwende (date("n")), um den Monat ohne führende Nullen zu erfassen. In der Datenbank steht trotzdem "07". Wenn wirklich "7" drin stände, könnte ich die Daten abfragen, so passiert aber nichts.

Wie kriege ich am sinnvolsten eine einheitliche Formatierung hin?

Schöne Grüße
Christof

EDIT: Habs gefunden. Ich habe über das Eingabeformular ja die Formatierung entsprechend mitgegeben.