Benuzereinstellung

Venillla

Mitglied
Hallo Leute
Bin noch ne Anfängerin in PHP..wenn jemand mir bitte bitte helfen kann.. 3 Fragen habe ich.. Wollte nicht für jede Frage ne neue Seite aufmachen..


1.)
Hab ein Zeiterfassungssystem erstellt, ich möchte dass nur die Rapporte die der angemeldeter Benuzer gespeichert hat, angezeigt wird und nicht von allen Mitarbeiter..

Also ich hab 3 verschiedene Tabellen:
mitarbeiter (id, name, vorname, .....)
rapport (id, mitarbeiter_id, tätigkeit, zeit, datum, ...)
user (id, mitarbeiter_id, kennwort, session)

Mein Script sieht etwa so aus:

PHP:
$sql = "SELECT  * FROM rapport WHERE YEAR(datum) = '$jahr' AND
  MONTH(datum) = '$monat' ORDER BY datum ";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
    die('Ungültige Abfrage: ' . mysql_error());
}

...

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo '<tr>';

echo '<td align="center">'. $zeile['tag'] .  '.'  . '</td>';


echo '<td>'. $zeile['objekt'] .  '&nbsp;'  . '</td>';
echo '<td>'. $zeile['mitarbeiter'] .  '&nbsp;'  . '</td>';
echo '<td>'. $zeile['taetigkeit'] .  '&nbsp;'  .'</td>'; 
echo '<td align="right">'. $zeile['zeit'] .  '&nbsp;'  . '</td>';


2. Frage)

Eine Auswertung aus Dropdownfelder: (objekt, jahr) (mitarbeiter und monat sind fest)

PHP:
    $sqlab = 'SELECT  SUM(zeit) FROM  rapport ';
  
if($_POST['mitarbeiter'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `monat` = "01" AND
		 `objekt` = "100" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}
else if($_POST['mitarbeiter'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		`monat` = "01" AND
		`objekt` = "100" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}
  else if($_POST['jahr'])
  {
    $sqlab .= 'WHERE
		`monat` = "01" AND
		`objekt` = "100" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }
    else if($_POST['mitarbeiter'])
  {
    $sqlab .= 'WHERE
		`monat` = "01" AND
		`objekt` = "100" AND
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'"';
  }
  $res = mysql_query($sqlab);
  $num = mysql_num_rows($res);
  $arr = mysql_fetch_array($res);
  //echo "<table border align='center'>";
  while ($arr) 
    { 
echo '<td align="right">'.  $arr['SUM(zeit)'] .  '&nbsp;'  . '</td>'; 
echo '</a>';
$arr = mysql_fetch_array($res);
    }

Beim Eingabe der Rapporte hab ich so eingestellt dass die Datum einmal ganz normal als date gespeichert wird, und noch ein zweitesmal einzeln als tag, monat und jahr.. deshalb funktioniert das obenstehene Script. ist ja blöd wenn datum zweimal gespeichert wird, wo ich doch speicherplatz sparen will..deshalb möchte ich jetzt nur noch aus date auswerten, nur weiss ich nicht wie..


3. Frage)

Das Script oben wird ja durch Dropdownfelder ausgewertet..wenn ich nichts im Dropdownfelder auswähle werden alle Daten angezeigt.
Kann ich so einstellen dass nur wenn ich was ausgewählt habe die Daten angezeigt werden und sonst die Felder leer bleiben?



Im voraus Danke hoch 3 für die Antworten
 
1.)
Hab ein Zeiterfassungssystem erstellt, ich möchte dass nur die Rapporte die der angemeldeter Benuzer gespeichert hat, angezeigt wird und nicht von allen Mitarbeiter..

Hast du die Benutzer-ID in einer Variable? Wenn ja, dann sieht das so aus:
PHP:
$sql = "SELECT  
    * 
 FROM 
    rapport 
 WHERE 
    YEAR(datum) = '$jahr' 
AND
    MONTH(datum) = '$monat'  ORDER BY datum
AND
    mitarbeiter_id = '$deine_Benutzer_ID_Variable'
";

2. Frage)
Beim Eingabe der Rapporte hab ich so eingestellt dass die Datum einmal ganz normal als date gespeichert wird, und noch ein zweitesmal einzeln als tag, monat und jahr.. deshalb funktioniert das obenstehene Script. ist ja blöd wenn datum zweimal gespeichert wird, wo ich doch speicherplatz sparen will..deshalb möchte ich jetzt nur noch aus date auswerten, nur weiss ich nicht wie..
Vielleicht hilft dir die Dokumentation von MySQL hier weiter?


3. Frage)
Das Script oben wird ja durch Dropdownfelder ausgewertet..wenn ich nichts im Dropdownfelder auswähle werden alle Daten angezeigt.
Kann ich so einstellen dass nur wenn ich was ausgewählt habe die Daten angezeigt werden und sonst die Felder leer bleiben?

Du kannst per
PHP:
if (!empty($_POST['hier_die_einzelnen_post_keys']))
{
// wurde gesendet
} else {
 // wurde nicht gesendet
}
alles überprüfen.
 
Variable keine Ahnung..
Beim rapportieren habe ich $_SESSION["user_name"] eingefügt dass man den Namen nicht reinschreiben muss.
Beim ausgeben der Daten geht das allerdings nicht..

$sql = "
SELECT
*
FROM rapport
WHERE
MONTH(datum) = '$monat'
AND
DAY(datum) = '$tag'
AND
YEAR(datum) = '$jahr'

ORDER BY datum

AND

mitarbeiter = '$_SESSION["user_nickname"]'";

hat es sonst einen Trick?

---------------------------------------

PHP:
if (!empty($_POST['hier_die_einzelnen_post_keys'])) 
{ 
// wurde gesendet 
} else { 
 // wurde nicht gesendet 
}

hab diese Befehle bei mir eingefügt, es kam aber nur eine Fehlermeldung..


PHP:
  $sqlab = 'SELECT 
              SUM(zeit)
            FROM
              rapport ';
  if(!empty($_POST['objekt'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `monat` = "01" AND
		 `mitarbeiter` = "Schmid" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}
else if(!empty($_POST['objekt'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		`monat` = "01" AND
		`mitarbeiter` = "Schmid" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}
  else if(!empty($_POST['jahr']))
  {
    $sqlab .= 'WHERE
		`monat` = "01" AND
		`mitarbeiter` = "Schmid" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }
    else if(!empty($_POST['objekt']))
  {
    $sqlab .= 'WHERE
		`monat` = "01" AND
		`mitarbeiter` = "Schmid" AND
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'"';
  }
  $res = mysql_query($sqlab);
  $num = mysql_num_rows($res);
  $arr = mysql_fetch_array($res);
  //echo "<table border align='center'>";
  while ($arr) 
    { 
echo '<td>'.  $arr['SUM(zeit)'] .  '&nbsp;'  . '</td>'; 
echo '</a>';
$arr = mysql_fetch_array($res);
    }

liegt der Fehler vielleicht irgendwo anders?
 
Zur ersten Frage habe ich mal (soweit ich es jetzt verstanden habe) eine Lösung:
PHP:
// Benutzer-ID rauslesen, anhand des Nicknamens
$benutzer_sql = "SELECT 
    `id`
  FROM 
    `mitarbeiter` 
  WHERE 
    `mitarbeiter_nickname_spalte` = '".$_SESSION["user_nickname"]."'
  ;";

if ($benutzer_result = mysql_query($benutzer_sql))
{// SQL-Abfrage ausführen

    if (mysql_num_rows($benutzer_result) == 1)
    {// Wenn ein Benutzer mit dem Nicknamen gefunden wurde

        // Gefundene Daten in Variable speichern
        $benutzer_row = mysql_fetch_assoc($benutzer_result);
        $sql = "SELECT
            *
          FROM 
            `rapport`
          WHERE
            MONTH(datum) = '$monat' AND
            DAY(datum) = '$tag' AND
            YEAR(datum) = '$jahr' AND
            mitarbeiter_id = '".$benutzer_result."'
          ORDER BY 
            datum DESC
        ;";
        $db_erg = mysql_query($sql);
        if (!$db_erg)
        {
            die('Ungültige Abfrage: ' . mysql_error());
        }
        
        // HIER DEINE WHILE SCHLEIFE...
        // [...]
    } else {

        echo "Es wurde kein Benutzer <i>".$_SESSION["user_nickname"]."</i> gefunden.";
    }
} else {
    
    echo "Es ist ein MySQL-Fehler aufgetrten: <code>".mysql_error()."</code>";
}

Zur zweiten Sache:
Vielleicht ist das hier ein Lösungsansatz?!
PHP:
// Standardwerte
$jahr   = "2008";
$objekt = "objekt";

if (!empty($_POST['jahr']))
{
    // Wenn gesendet, die Variable überschreiben
    $jahr = $_POST['jahr'];
}
if (!empty($_POST['objekt']))
{
    // Wenn gesendet, die Variable überschreiben
    $objekt = $_POST['objekt'];
}
 
Zuletzt bearbeitet:
Nee ich checks immer noch nicht :(

Noch einmal etwas klarer:


benutzerdaten {Id, Nickname, Kennwort}
rapport {id, mitarbeiter, datum, zeit, taetigkeit]
mitarbeiter {id, name, vorname, strasse, …}

(Die Beziehungen sind rot)

Und so sieht das Schript jetzt aus:

PHP:
// Benutzer-ID rauslesen, anhand des Nicknamens 
$benutzer_sql = "SELECT  
    `id` 
  FROM  
    `mitarbeiter`  
  WHERE  
    `name` = '".$_SESSION["user_nickname"]."' 
  ;"; 

if ($benutzer_result = mysql_query($benutzer_sql)) 
{// SQL-Abfrage ausführen 

    if (mysql_num_rows($benutzer_result) == 1) 
    {// Wenn ein Benutzer mit dem Nicknamen gefunden wurde 

        // Gefundene Daten in Variable speichern 
        $benutzer_row = mysql_fetch_assoc($benutzer_result); 
        $sql = "SELECT 
            * 
          FROM  
            `rapport` 
          WHERE 
            MONTH(datum) = '$monat' AND 
            DAY(datum) = '$tag' AND 
            YEAR(datum) = '$jahr' AND 
            mitarbeiter = '".$benutzer_result."' 
          ORDER BY  
            datum DESC 
        ;"; 
        $db_erg = mysql_query($sql); 
        if (!$db_erg) 
        { 
            die('Ungültige Abfrage: ' . mysql_error()); 
        } 

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))

echo '<td>'. $zeile['objekt'] .  '&nbsp;'  . '</td>';
echo '<td>'. $zeile['mitarbeiter'] .  '&nbsp;'  . '</td>';
echo '<td>'. $zeile['taetigkeit'] .  '&nbsp;'  .'</td>'; 
echo '<td align="right">'. $zeile['zeit'] .  '&nbsp;'  . '</td>'; 
echo '<td width="3%" align="center">';
echo '<a href="monat_ansicht.php?vorgang=loeschen&id=';
  echo $zeile['id'];
  echo '">x</a> ';
  echo '</td>';

  echo '<td width="3%" align="center">';
  echo '<a href="monat_ansicht.php?vorgang=aendern&id=';
  echo $zeile['id'];
  echo '"><></a> ';

  echo '</td>';





  echo '</tr>';

    } else { 

        echo "Es wurde kein Benutzer <i>".$_SESSION["user_nickname"]."</i> gefunden."; 
    } 
} else { 
     
    echo "Es ist ein MySQL-Fehler aufgetrten: <code>".mysql_error()."</code>"; 
}  

mysql_free_result( $db_erg );

Ich möchte, wenn ich angemeldet bin, nur meine Rapporte anzeigen lassen die ich eingefügt habe..
 
Yeah die Benutzereinstellung funktioniert!!
Dank an nepda und loomes für die Hilfe :)))

So sieht das Script jetzt aus:
PHP:
// Benutzer-ID rauslesen, anhand des Nicknamens 
$benutzer_sql = "SELECT  
    `id` 
  FROM  
    `mitarbeiter`  
  WHERE  
    `name` = '".$_SESSION["user_nickname"]."' 
  ;"; 

if ($benutzer = mysql_query($benutzer_sql)) 
{// SQL-Abfrage ausführen 

    if (mysql_num_rows($benutzer) == 1) 
    {// Wenn ein Benutzer mit dem Nicknamen gefunden wurde 

        // Gefundene Daten in Variable speichern 
        $benutzer_row = mysql_fetch_assoc($benutzer); 
        $sql = "SELECT 
            *
          FROM  
            `rapport` 
          WHERE 
            MONTH(datum) = '$monat' AND 
            YEAR(datum) = '$jahr' AND 
            mitarbeiter = '" .$benutzer_row['id']. "' 
          ORDER BY  
            datum  
        ;"; 
       
 $db_erg = mysql_query($sql); 
        if (!$db_erg) 
        { 
            die('Ungültige Abfrage: ' . mysql_error()); 
        } 

// Ausgabe Tabelle mit Rapport
echo '<table width="100%" cellspacing="0" cellpadding="3" border="1" bordercolor="#FFFFFF" style="border-collapse: collapse" bgcolor="#E6E6E6">
<tr><td width="5%" align="center"><b>Tag</b></td><td width="9%" align="center"><b>Objekt</b></td>
<td><b>Tätigkeit</b></td><td width="5%" align="center"><b>Zeit</b></td>
<td width="3%">&nbsp</td><td width="3%">&nbsp</td>
</tr>';

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))

echo '<tr>'.'<td align=center>'. $zeile['tag'] . '.&nbsp;' . '</td>'.
'<td align=right>'. $zeile['objekt'] . '&nbsp;' . '</td>'. 
'<td>'. $zeile['taetigkeit'] . '&nbsp;' . '</td>'.
'<td align="right">'. $zeile['zeit'] .  '&nbsp;'  . '</td>' . 

 '<td width="3%" align="center">' . '<a href="monat_ansicht.php?vorgang=loeschen&id=' .
 $zeile['id'] . '">x</a> ' . '</td>' .

 '<td width="3%" align="center">' .
 '<a href="monat_ansicht.php?vorgang=aendern&id=' .
 $zeile['id'] .
 '"><></a> ' .

  '</td>' . 
'</tr>';

    } else { 

        echo "Es wurde kein Benutzer <i>".$_SESSION["user_nickname"]."</i> gefunden."; 
    } 
} else { 
     
    echo "Es ist ein MySQL-Fehler aufgetrten: <code>".mysql_error()."</code>"; 
}  
  echo '</tr>';

mysql_free_result( $db_erg );


Jetzt nur noch die letzten 2 Fragen für die ich Hilfe brauche..

Ich hab 4 Dropdownfelder durch die ich die Rapporte aus der Datenbank auswerte.
? Objekt, Mitarbeiter, Monat, Jahr

Der Script den ich erstellt habe zeigt zuerst alle Daten die im Datenbank gespeichert sind, wenn ich auf die Seite komme. Ich möchte aber erst die Daten anzeigen lassen wenn ich irgendwas in den einzelnen oder allen Dropdownfelder eingefügt habe..
Hab wie oben geschrieben mit !empty versucht, aber es gab nur Fehlermeldungen..


Das Script:

PHP:
$sqlab = 'SELECT 
              DATE_FORMAT(datum, "%d.%m.%Y") AS datum, objekt, mitarbeiter, taetigkeit, zeit 
            FROM 
              rapport ';  
  
 
  if($_POST['objekt'] && $_POST['mitarbeiter'] && $_POST['monat'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }

else if($_POST['objekt'] && $_POST['mitarbeiter'] && $_POST['monat'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'"';
  }

else if($_POST['objekt'] && $_POST['mitarbeiter'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }

else if($_POST['objekt'] && $_POST['monat'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		  `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }

else if($_POST['mitarbeiter'] && $_POST['monat'] && $_POST['jahr'])
  
{
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }


else if($_POST['objekt'] && $_POST['mitarbeiter'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'"';
  }

 else if($_POST['objekt'] && $_POST['monat'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'"';
  }

else if($_POST['objekt'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}

else if($_POST['monat'] && $_POST['mitarbeiter'])

  {
    $sqlab .= 'WHERE 
                 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'"';
  }

else if($_POST['mitarbeiter'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}

else if($_POST['monat'] && $_POST['jahr'])
  {
    $sqlab .= 'WHERE 
                 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}

  else if($_POST['mitarbeiter'])
  {
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'"';
  }
  else if($_POST['jahr'])
  {
    $sqlab .= 'WHERE
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }
    else if($_POST['objekt'])
  {
    $sqlab .= 'WHERE
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'"';
  }
     else if($_POST['monat'])
  {
    $sqlab .= 'WHERE
                 `monat` = "'.mysql_real_escape_string($_POST['monat']).'"';
  } 
       
  $res = mysql_query($sqlab);
  $num = mysql_num_rows($res);
  $arr = mysql_fetch_array($res);
    
  //echo "<table border align='center'>";
  
  while ($arr) 
    { 

echo "<tr>";
echo '<td align="center">'.  $arr['datum'] .  '&nbsp;'  . '</td>'; 
echo '<td>'.  $arr['objekt'] .  '&nbsp;'  . '</td>'; 
echo '<td>'.  $arr['mitarbeiter'] .  '&nbsp;'  . '</td>'; 
echo '<td>'.  $arr['taetigkeit'] .  '&nbsp;'  . '</td>'; 
echo '<td align="right">'.  $arr['zeit'] .  '&nbsp;'  . '</td>'; 
echo "</tr>";
echo '</a>';
$arr = mysql_fetch_array($res);

    }
 
Die Fehlermeldung beginnt schon bei der ersten !empty Befehl:

Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ')' in C:\......gesamt_ansicht.php on line 172

Zu viele Kommas?

PHP:
  $sqlab = 'SELECT 
              DATE_FORMAT(datum, "%d.%m.%Y") AS datum, objekt, mitarbeiter, taetigkeit, zeit 
            FROM 
              rapport ';  
  
 
  if(!empty($_POST['objekt'] && $_POST['mitarbeiter'] && $_POST['monat'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }

else if(!empty($_POST['objekt'] && $_POST['mitarbeiter'] && $_POST['monat']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'"';
  }

else if(!empty($_POST['objekt'] && $_POST['mitarbeiter'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }

else if(!empty($_POST['objekt'] && $_POST['monat'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		  `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }

else if(!empty($_POST['mitarbeiter'] && $_POST['monat'] && $_POST['jahr']))
  
{
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }


else if(!empty($_POST['objekt'] && $_POST['mitarbeiter']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'"';
  }

 else if(!empty($_POST['objekt'] && $_POST['monat']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `monat` = "'.mysql_real_escape_string($_POST['monat']).'"';
  }

else if(!empty($_POST['objekt'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}

else if(!empty($_POST['monat'] && $_POST['mitarbeiter']))

  {
    $sqlab .= 'WHERE 
                 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'"';
  }

else if(!empty($_POST['mitarbeiter'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}


else if(!empty($_POST['monat'] && $_POST['jahr']))
  {
    $sqlab .= 'WHERE 
                 `monat` = "'.mysql_real_escape_string($_POST['monat']).'" AND
		 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
}


  else if(!empty($_POST['mitarbeiter']))
  {
    $sqlab .= 'WHERE 
                 `mitarbeiter` = "'.mysql_real_escape_string($_POST['mitarbeiter']).'"';
  }
  else if(!empty($_POST['jahr']))
  {
    $sqlab .= 'WHERE
                 `jahr` = "'.mysql_real_escape_string($_POST['jahr']).'"';
  }
    else if(!empty($_POST['objekt']))
  {
    $sqlab .= 'WHERE
                 `objekt` = "'.mysql_real_escape_string($_POST['objekt']).'"';
  }
     else if(!empty($_POST['monat']))
  {
    $sqlab .= 'WHERE
                 `monat` = "'.mysql_real_escape_string($_POST['monat']).'"';
  } 
       
    
  
  $res = mysql_query($sqlab);
  $num = mysql_num_rows($res);
  $arr = mysql_fetch_array($res);
    
  //echo "<table border align='center'>";
  


  while ($arr) 
    { 



echo "<tr>";
echo '<td align="center">'.  $arr['datum'] .  '&nbsp;'  . '</td>'; 
echo '<td>'.  $arr['objekt'] .  '&nbsp;'  . '</td>'; 
echo '<td>'.  $arr['mitarbeiter'] .  '&nbsp;'  . '</td>'; 
echo '<td>'.  $arr['taetigkeit'] .  '&nbsp;'  . '</td>'; 
echo '<td align="right">'.  $arr['zeit'] .  '&nbsp;'  . '</td>'; 
echo "</tr>";
echo '</a>';
$arr = mysql_fetch_array($res);


    }
 
Nein, zuwenig emptys :)
PHP:
 if(!empty($_POST['objekt'] && $_POST['mitarbeiter'] && $_POST['monat'] && $_POST['jahr']))
empty erwartet _einen_ Parameter. D.h. du musst auf _jede_ Variable empty anwenden:
PHP:
if( !empty( $_POST['objekt'] )
    && !empty( $_POST['mitarbeiter'] )
    && !empty( $_POST['monat'] )
    && !empty( $_POST['jahr'] )
  )
  {
 
Zuletzt bearbeitet:
Zurück