Benuzereinstellung

Habs gemacht.. Keine Fehlermeldungen mehr, aber es werden immer noch alle Daten angezeigt :(
Ist der Fehler sonst irgendwo?

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

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

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

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

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

else if( !empty( $_POST['mitarbeiter'] ) && !empty( $_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);
    }
 
Zeig mal das Formular mit den Dropdown-Feldern.
Verstehe ich das richtig, dass beim ersten Aufruf der Seite nichts angezeigt werden soll, sondern erst wenn man etwas aus den Dropdown-Feldern auswählt?
Funktioniert denn das Auswählen mit den Dropdown-Feldern schon?
 
Ja genau, beim Aufruf der Seite darf nix angezeigt werden.. erst wenn man was ausgewählt hat.
Wenn 15 Mitarbeiter pro Tag je mindestens 5 Rapporte einfügen, kannst dir selber vorstellen wie lang die Liste wird wenn ich erst nach einem 2 Jahren die Datenbank leeren soll…

Die Auswertung aus den Dropdown-Feldern läuft eigentlich fehlerfrei.
Die Dropdownfelder hab ich direkt über die Ausgabeliste eingefügt:

PHP:
<fieldset>
<form action="gesamt_ansicht.php" method="post">
  <div> Objekt     
<select name="objekt">
<option value=""></option>
<?
error_reporting(0);
$con = mysql_connect("localhost", "root", "XXX");
$db = mysql_select_db("zeiterfassung");
$res = mysql_query("SELECT * FROM objekteliste ORDER by objnr");
while($row = mysql_fetch_array($res))
{
echo "<option value=";
echo $row["objnr"];
echo ">";
echo $row["objnr"];
echo "</option><br />";
}
?>
</select>Mitarbeiter
  <select name="mitarbeiter">
<option value="<?php echo $_SESSION["user_nickname"]; ?>"><?php echo $_SESSION["user_nickname"]; ?></option></select>

<?php
require ('monat-konfiguration.php');

$db_sel = mysql_select_db( MYSQL_DATENBANK )
    or die("Auswahl der Datenbank fehlgeschlagen");

if ( $_GET['monat'] )
{
         if ( (INT) $_GET['tag'] > 0 AND (INT) $_GET['tag'] < 32 )
    {
            $tag = (INT) $_GET['tag'];
    }
    else
    {
        // ist kein Monat angegeben, wird der aktuelle Monat verwendet
       $tag = date("d");
    }
}
else
{
    // ist kein Monat angegeben, wird der aktuelle Monat verwendet
   $tag = date("d");
}
if ( $_GET['monat'] )
{
         if ( (INT) $_GET['monat'] > 0 AND (INT) $_GET['monat'] < 13 )
    {
            $monat = (INT) $_GET['monat'];
    }
    else
    {
        $monat = date("n");
    }
}
else
{
   $monat = date("n");
}

if ( $_GET['jahr'] )
{ if ( (INT) $_GET['jahr'] > 0 AND (INT) $_GET['jahr'] < 3000 )
	{	$jahr = (INT) $_GET['jahr']; }
	else
	{	$jahr = date("Y"); }
}
else
{   $jahr = date("Y"); }

echo "Monat";
echo "<select name='monat'>";
  echo "<option value='$monat'>$monat</option>";
  echo "<option value='1'>1</option>";
  echo "<option value='2'>2</option>";
  echo "<option value='3'>3</option>";
  echo "<option value='4'>4</option>";
  echo "<option value='5'>5</option>";
  echo "<option value='6'>6</option>";
  echo "<option value='7'>7</option>";
  echo "<option value='8'>8</option>";
  echo "<option value='9'>9</option>";
  echo "<option value='10'>10</option>";
  echo "<option value='11'>11</option>";
  echo "<option value='12'>12</option>";
  echo "</select>";

echo "Jahr";
echo "<input type='text' name='jahr' value='$jahr'";
    echo "' size='5' maxlength='20' />";

?>
     <input type="submit" value="Laden">
    </fieldset>
    </form>
 
Zuerst füge mal folgendes Formularfeld in dein Formular ein:
HTML:
<input type="hidden" value="1" name="send" />
Das ist ein unsichtbares Feld, das beim absenden $_POST['send'] mit dem Wert 1 schickt.

Dann schliesst du dein Script in eine IF-Abfrage ein, so wird das Script nur ausgeführt, wenn das Formular abgeschickt wurde.
PHP:
if( isset( $_POST['send'] ) &&  $_POST['send'] == "1" )
{
    $sqlab = 'SELECT 
              DATE_FORMAT(datum, "%d.%m.%Y") AS datum, objekt, mitarbeiter, taetigkeit, zeit 
            FROM 
              rapport '; 
              
    // eine Menge Code
}
 
Es funktioniert
Grosses Dank Loomes :p Deine beiden Scripte funktionieren super. Genauso wie ich es wollte :) ein riesen grosses Dank
 
Zurück