Spesenabrechnung

asolution

Mitglied
Hallo liebes Forum

Ich bin im Moment daran eine Speseabrechnung der einfachen Art (für den Anfang jedenfalls) zu erstellen.
Nun habe ich ein Problem und weiss nicht wie weiter.

Ich habe 2 Tabellen eine mit dem Spesenkopf und eine mit den Spesenpositionen um diese dynamisch zu erweitern. nun weiss ih nicht wie ich die Verbindungen machen soll zwischen den Tabellen...
wie bekommen ich die eine ID zu anderen?

Die Dateien sehen im Moment wie folgt aus:

save_spesen.php

PHP:
<?
include ("check_session.php"); 
include ("connect.php");  

$user = $_SESSION['user_id'];
$datum = $_POST['date'];
$datumfrei = date("d.m.Y");


$spesenart = $_POST['spesenart'];
$betrag = $_POST['betrag'];

$Id = mysql_insert_id();
$Id = 1;
mysql_query("INSERT INTO Spesenposition (Id, Spesenart, Betrag)".
		" VALUES ('".$spesenart."','".$spesenart."','".$betrag."')");

$SpePosId = mysql_insert_id();

mysql_query("INSERT INTO Spesen (UserId, SpePosId , Datum, DatumFreigegeben)".
		" VALUES ('".$user."','".$SpePosId ."','".$datum ."','".$datumfrei."')");
		
header ("Location: spesen.php"); 		
?>

und die Datei
spesen.php

HTML:
<?
include ("check_session.php"); 
include ("connect.php"); 
?>

<html>
<head>
<title>Swissunihockey Refree Statistik - Spesen</title>
	<script type="text/javascript" src="js/prototype.js"></script>
	<script type="text/javascript" src="js/scriptaculous.js"></script>
	<script type="text/javascript" src="js/datepicker.js"></script>
	<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
	<div id="logo">
	<a href=start.php><img src="pictures/logo_refree.jpg" /></a>
	</div>
	<div id="header">
	<div id="menu">
		<a href=start.php>Home</a>
		<a href=vorbereitung.php>Vorbereitung & Spiel</a>
		<a href=nachspiel.php>Nach dem Spiel</a>
		<a href=spesen.php>Spesen</a>
		<a href=spielberichte_ansehen.php>Spielberichte ansehen</a>
		<a href=statistiken.php>Statistiken</a>
		<a href=logout.php>Logout</a>
	</div>
	</div>
	<div id="content">
	<h2>Hier können die Spesen für den gesamten letzen Monat zusammengestellt werden. Die Exceldatei wird zuletzt generiert und kann abgespeichert werden.</h2>
		<form action="save_spesenkopf.php" method="post">
		<table>
			<tr>
				<td><h2>Spesenkopf</h2></td>
			</tr>
			<tr>
				<td>Schiedsrichter: </td> 					
				<td>
					<?
							echo $_SESSION['user_nickname'];
					?>
				</td>
			</tr>
			<tr>
				<td>Datum: </td>
				<td width="15">
					<form id="fx" method="post" action="#">
					<input type="text" id="date" name="date" class="date"/>
					<script type="text/javascript">
						/*<[CDATA[*/
						var datepicker	= new DatePicker({
						relative	: 'date',
						language	: 'de'
						});
						/*]]>*/
					</script>
					</form>
				</td>
			</tr>
			<tr>
				<td>Genehmigt am:</td><td> <? echo date("d.m.Y"); ?></td>
			</tr>
			<tr>
				<td>Genehmigt von:</td><td>  Swiss Unihockey</td>
			</tr>
			<tr>
				<td><input type="submit" value="speichern"></td>
				<td><input type="button" value="löschen"</td>
			</tr>
			</form>
			<form action="save_spesen.php" method="post">
			<tr>
				<td><h2>Spesenpositionen </h2></td>
			</tr>
			<tr>
				<td><h3>Spesenart</h3></td>
				<td><h3>Betrag</h3></td>
			</tr>
			<?
			$result = mysql_query('SELECT Spesenart, Betrag FROM Spesenposition');
			while ($row = mysql_fetch_array($result)){
				echo "<tr><td>";
				echo $row['Spesenart'];
				echo "</td><td>";
				echo $row['Betrag'];
				echo "</td></tr>";
			}
			?>
			<tr><td>&nbsp;</td></tr>
			<tr><td>&nbsp;</td></tr>
			<tr>
			<td>Spesenart:</td>
			<td><input type="text" name="spesenart" size="30" /></td>
			<td>Betrag:</td>
			<td><input type="text" name="betrag" size="5" /></td>
			</tr>
			<tr>
				<td><input type="submit" value="speichern"></td>
				<td><input type="button" value="löschen"</td>
			</tr>
		</table>
		<form>
	</div>
</body>
</html>

Die tabellen

Code:
CREATE TABLE `Spesen` (
  `Id` int(11) NOT NULL auto_increment,
  `UserId` int(11) NOT NULL default '0',
  `SpePosId` int(11) NOT NULL default '0',
  `Datum` varchar(12) NOT NULL default '',
  `DatumFreigegeben` varchar(10) NOT NULL default '',
  PRIMARY KEY  (`Id`)
)

CREATE TABLE `Spesenposition` (
  `PosId` int(11) NOT NULL auto_increment,
  `Id` int(11) NOT NULL default '0',
  `Spesenart` varchar(20) NOT NULL default '',
  `Betrag` double NOT NULL default '0',
  PRIMARY KEY  (`PosId`)
)


Kann mir jemand weiter helfen?

VIELEN DANK

asolution
 
Hallöle,

hab endlich mal Zeit gefunden mich hier durchzuwuseln :D ...
Also, um Tabellen miteinander zu verknüpfen, kannst du den Befehl JOIN benutzen.

Du kannst die Tabellen soweit ich das richtig Überblickt habe nur mit PosID und SpePosID in Verbindung bringen, da Sie identische Werte beinhalten (wegen mysql_insert_id()).
Deshalb hab ich hier einfach schon mal ein Beispiel vorbereitet (JOIN als Befehl wegen anderer Schreibweise nicht sichtbar).

PHP:
$Abfrage = mysqli_query($db, "SELECT Spesenposition.PosID, Spesen.UserID FROM Spesenposition, Spesen WHERE Spesenposition.PosID = Spesen.SpePosID");
while($datensatz = mysqli_fetch_array($Abfrage)) {
extract($datensatz);

//Irgendwas mit den Daten machen
}

Natürlich ist das ganze ziemlich spartanisch - aber ich konnte mir ja nur ein Beispiel raussuchen, ohne zu wissen, was genau du machen willst...
 
Zurück