Liebe Enwickler,
ich habe folgende Situation und bräuchte dringend Hilfe:
meine Aufgabe ist eine Datenbank mit entspechenden Frontend zu erstellen, wo die Mitarbeiter mit Status aktiv oder inaktiv mit entsprechenden Zugängen (z.B. Windows, Email, Internet usw.) eingepflegt werden.
Ich habe das folgendermaßen überlegt:
tblma mit Spalten id, VName, ZName, aktiv (boolean) und
tblsystem mit Spalten id, SysName die über eine Referenztabelle tblref mit Spalten id, MAID, SysID miteinander verknüpft sind.
__________________________________________________
ma.html
insertref.php
___________________________________
Nun ist es so, dass ich in die tblma einen Datensatz ordnungsgemäß eingetragen bekomme. In die tblref zwar auch, aber erstens wird es hier nur einmal eingetragen egal wieviele checkboxen man angeklickt hatte (es soll aber für je angeklickte checkbox (Windows, Email, Internet) ein Datensatz geschrieben werden), zweitens sieht der Datensatz so aus:
id: 1 MAID: 0 SysID: 0
id: 2 MAID: 0 SysID: 0
Ich komme momentan leider nicht darauf, wie ich die zuletzt eingetragene id richtig auslesen kann (query1, query2), damit ich sie dann in die tblref eintragen kann. Dann fehlt mir meiner Ansicht nach die Zuordnung der Checkboxen mit den Datensätzen von tblsystem.
Kann mir bitte jemand helfen? Ich bin nur Anfängerin. Es wäre schön, wenn ihr einfach meinen Code ergänzen könnt. Danke.
ich habe folgende Situation und bräuchte dringend Hilfe:
meine Aufgabe ist eine Datenbank mit entspechenden Frontend zu erstellen, wo die Mitarbeiter mit Status aktiv oder inaktiv mit entsprechenden Zugängen (z.B. Windows, Email, Internet usw.) eingepflegt werden.
Ich habe das folgendermaßen überlegt:
tblma mit Spalten id, VName, ZName, aktiv (boolean) und
tblsystem mit Spalten id, SysName die über eine Referenztabelle tblref mit Spalten id, MAID, SysID miteinander verknüpft sind.
__________________________________________________
ma.html
HTML Code:
<form action="insertref.php" method="post" target=""> <input type="hidden" name="sent" value="yes"> <h2>Mitarbeiter</h2> Vorname <input type="Text" name="VName" value="" size="30" maxlength=""> <font color="#FF0000">*</font> <br><br> Name <input type="Text" name="ZName" value="" size="30" maxlength=""> <font color="#FF0000">*</font> <input type="checkbox" name="aktiv" value="aktiv"> aktiv <br><br><br><br> <input type="checkbox" name="system[]" value="iMedOne"> iMedOne <input type="checkbox" name="system[]" value="Labor"> Labor <input type="checkbox" name="system[]" value="Pacs"> Pacs <input type="checkbox" name="system[]" value="MediColor"> MediColor <input type="checkbox" name="system[]" value="SAP"> SAP <input type="checkbox" name="system[]" value="Clinic Planer"> Clinic Planer <input type="checkbox" name="system[]" value="Internet"> Internet <input type="checkbox" name="system[]" value="Email"> Email <input type="checkbox" name="system[]" value="Citrix"> Citrix <input type="checkbox" name="system[]" value="VPN"> VPN <br><br><br> <input type="Submit" name="" value="Speichern"> <br><br><br> </form>
PHP Code:
<?php
include("DBConnect.inc.php");
$VName = mysql_real_escape_string($_POST['VName']);
$ZName = mysql_real_escape_string($_POST['ZName']);
$aktiv = mysql_real_escape_string($_POST['aktiv']);
$system = mysql_real_escape_string($_GET['system']); //Inhalt der Checkboxen
$aktion = "select VName, ZName from tblma where (VName='$VName' && ZName='$ZName')";
$ergebnis = mysql_query($aktion) or die(mysql_error());
$number = mysql_num_rows($ergebnis);
//Felder nach Vollständigkeit prüfen
if ( $VName == "" || $ZName == "")
{
echo "$VName, $ZName Bitte überprüfen Sie Ihre Eingaben!";
echo "<a href=javascript:history.back()><br><br>zurück</a>";
exit;
}
//Verhinderung einer Doppelerfassung
elseif ($number != 0)
{
echo "Dieser Mitarbeiter existiert bereits!<br>";
echo "<a href=javascript:history.back()>zurück</a>";
exit;
}
//Prüfung, ob Checkbox false ist
elseif (!isset($_POST['aktiv']))
{
$aktiv=0;
$query[] = "insert into tblma set VName='$VName',ZName='$ZName',aktiv='$aktiv'"; //Query 1
$id1 = mysql_insert_id(); //Insert ID 1
echo "Mitarbeiter $VName, $ZName wurde angelegt und ist nicht aktiv";
echo "<a href=javascript:history.back()><br><br>zurück<br><br></a>";
for ($i=0;$i<count($system);$i++)
{
if (isset($_POST['system']))
{
$query[]="select id from tblsystem where id='$system'";
$id2=mysql_insert_id();
$query[] = "insert into tblref set MAID='$id1',SysID='$id2'";
$system = implode(", ",$_POST['system']);
echo "String: <br>$system <br>"; // Testausgabe
}
}
for($i=0;$i<count($query);$i++)
{
mysql_query($query[$i]);
echo "Query Nr: $i, ";
}
echo "<br>erste id: $id1 <br>";
echo "zweite id: $id2 <br>";
}
else
{
//Prüfung, ob Checkbox true ist
$aktiv=1;
$query[] = "insert into tblma set VName='$VName',ZName='$ZName',aktiv='$aktiv'";
$id1 = mysql_insert_id();
echo "Mitarbeiter $VName, $ZName wurde angelegt und ist aktiv";
echo "<a href=javascript:history.back()><br><br>zurück<br><br></a>";
for ($i=0;$i<count($system);$i++)
{
if (isset($_POST['system']))
{
$query[]="select id from tblsystem where id='$system'";
$id2=mysql_insert_id();
$query[] = "insert into tblref set MAID='$id1',SysID='$id2'";
$system = implode(", ",$_POST['system']);
echo "String: <br>$system <br>"; // Testausgabe
}
}
for($i=0;$i<count($query);$i++)
{
mysql_query($query[$i]);
echo "Query Nr: $i, ";
}
echo "<br>erste id: $id1 <br>";
echo "zweite id: $id2 <br>";
}
mysql_close($Conn);
?>
Nun ist es so, dass ich in die tblma einen Datensatz ordnungsgemäß eingetragen bekomme. In die tblref zwar auch, aber erstens wird es hier nur einmal eingetragen egal wieviele checkboxen man angeklickt hatte (es soll aber für je angeklickte checkbox (Windows, Email, Internet) ein Datensatz geschrieben werden), zweitens sieht der Datensatz so aus:
id: 1 MAID: 0 SysID: 0
id: 2 MAID: 0 SysID: 0
Ich komme momentan leider nicht darauf, wie ich die zuletzt eingetragene id richtig auslesen kann (query1, query2), damit ich sie dann in die tblref eintragen kann. Dann fehlt mir meiner Ansicht nach die Zuordnung der Checkboxen mit den Datensätzen von tblsystem.
Kann mir bitte jemand helfen? Ich bin nur Anfängerin. Es wäre schön, wenn ihr einfach meinen Code ergänzen könnt. Danke.
Comment