Hi junior!
»» Ich bräuchte also in der for-Schleife diese
if (isset($_POST['year']) and $_POST['year'] == $i)
überhaupt nicht?
Doch. =)
Jetzt sieht man ja das Gesamtbild. Ich würde es folgendermaßen machen:
// Welches Jahr soll vorselektiert werden?
if (!empty($_POST['year']))
$selectedYear = $_POST['year'];
else
$selectedYear = date('Y');for ($i = $min; $i <= $max; $i++) {
if (selectedYear == $i)
{
// ausgewählten Eintrag oder Standardeintrag vorselektieren
echo "<option selected>$i</option>\n";
}
else
{
echo "<option>$i</option>\n";
}
}
>
> Die Werte `$min`{:.language-php} und `$max`{:.language-php} kannst du ggf. noch vom aktuellen Jahr (`date('Y')`{:.language-php}) abhängig machen.
>
> »» Darf ich dich noch was fragen, wie lernt man am Besten PHP?
> Nach und nach. =)
>
> »» Hab zwar im Internet schon einige Tutorials gesucht, aber ehrlich gesagt haut mich da nichts um. Hast du einen Tip für mich?
> Ein guter Programmierer wirst du nur durch Übung. Es ist wichtig, dass du deinen eigenen Stil findest.
>
> Allgemeine PHP-Tutorials habe ich nie durchgearbeitet. Die Erfahrung, die man duch seine Projekte sammelt, ist einfach das Wichtigste.
>
> MfG H☼psel
Jetzt soll ich zusätzlich zu dem "Jahresfilter" auch noch einen Filter einbauen, mit den man die Kunden auswählen kann. Wie mach ich das am Besten? Ich hab es zwar geschafft, das in der Auswahlbox die Kunden angezeigt werden, aber wie sag ich ihm, wenn ich z.B Kunde "Maier" auswähle, das er mir nur die Daten von Kunde "Maier" anzeigt?
~~~php
<?php
$counter = 0;
$customerfilter = "";
if (empty($_POST['Suchen'])) {
$_POST['Suchen'] = 'Suchen';
}
$dbconn = pg_connect("host=s001 dbname=lars user=usr_intranet")
or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
$query= " SELECT DISTINCT(name), kunde_id from kunde WHERE kunde_id is not null order by kunde_id ASC
";
$result = pg_query($dbconn, $query) or die('Abfrage fehlgeschlagen: ' . pg_last_error());
echo " <html>\n<head>\n
<title>kostenstellenliste</title>\n
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>\n
<link rel='stylesheet' type='text/css' href='lars.css' />
<script language='JavaScript' src='lars.js'></script>
<body>
<form action=\"
";
echo $_SERVER['PHP_SELF'];
echo " \" method=\"post\">
<table>
\t<colgroup><col width=780> <col width=120> <col width=100></colgroup>
<tr class=\"filter\">
<td> Filter - Kunde</td>
<td valign=\"middle\" align=\"center\">Kunde <select align=\"right\" size=\"1\" name=\"name\" class=\"name\">
<option value=\"*\">*</option>
";
while ($res = pg_fetch_assoc($result)){
$a = $res['name'];
if(isset($_POST['name']) and $_POST['name'] == $a ) {
echo "<option selected>$a</option>\n";
}
else
{
echo "<option>$a</option>\n";
}
}
echo "</select></td>
<td valign=\"middle\" align=\"center\"><div id=\"bottom\"><input type=\"submit\" name=\"Suchen\" value=\"Suchen\" /></td>
</tr>
</table>
</form>
";
if(isset($_POST['Suchen']) and $_POST['Suchen'] == 'Suchen') {
if ($name != '*') {
// $customerfilter = " AND ";
} else {
$customerfilter ="";
}
}
$query =
"
SELECT kostenstelle_id, b.name, bezeichnung, kstbegin, kstende, projektleiter,
ret_mit_names(kostenstelle_id,curDate()) as mitarbeiter
FROM (SELECT kostenstelle_id, fs_kunde, bezeichnung, kstbegin, kstende, projektleiter
FROM kostenstelle
WHERE fs_firma=1
$customerfilter
AND kostenstelle_id > 199999
AND ((kstende is null) OR (kstende >= curDate()))) k
LEFT OUTER JOIN kunde b
ON b.kunde_id=k.fs_kunde
LEFT OUTER JOIN (SELECT a.fs_kostenstelle, COUNT(distinct fs_mitarbeiter) as mitsIntern
FROM (SELECT mitarbeiter_id FROM mitarbeiter
WHERE fs_firma=1
AND eintritt<=current_date
AND ((austrITT Is null) OR (austritt > curDate()))
AND fs_mitarbeiterstatus = 1) im
INNER JOIN (SELECT fs_kostenstelle, fs_mitarbeiter
FROM aktivmitposkst
WHERE fs_firma=1
AND ((aktivbis is null) OR (aktivbis >= curDate()))) a
ON im.mitarbeiter_id=a.fs_mitarbeiter
GROUP BY a.fs_kostenstelle) i
ON k.kostenstelle_id=i.fs_kostenstelle
ORDER BY kostenstelle_id;
irgendwie oder wo muss ich ihm doch sagen, das er nur die Auswahl anzeigen soll, oder?
Ich hab es in eine "neue" Seite gemacht, damit ich nicht mit der Datumsabfrage keine Probleme bekomme, wie würde ich das dann zusammenfügen?
Also, das ich sowohl das Jahr, auch als den Kunden auswähle?