|
Die letzten 5 Postings in diesem Thema » Alle anzeigen
von brali |
Bitte?
nix Baustelle! funzt wunderbar!
bis auf die eine Stelle die aber, wie ich bereits sagte nun funktioniert.
Grüße und danke! |
von Austin Powers |
ich fummel mich grad durch deinen Quelltext. noch viel Baustelle häe.
versuchs anstelle von Zeile 23 bis 31 mal mit
1:
2:
3:
4:
5:
6:
7:
8:
9: |
unset (query);
foreach ( $_POST['mitarbeiter'] as $mitarbeiter) {
query=. "insert into vb_verweis (mitarbeiterid, dienstleistungid) values ('$mitarbeiter','$id');";
}
$result = mysql_query($query);
mysql_free_result($result);
unset ($query);
|
P.S.: was macht mid in vb_dienste?
vb_verweis verknüpft doch mitarbeiter und dienste.
Da ist ziemlich der Wurm drinn |
von brali |
Hi Austin, THX für deine Mühe.
Hier der ganze Quelltext und die änderungen die ich gemacht habe damit es nun funktioniert.
Das <form> war im übrigen schon okay, ich habe nur einen very doofen denkfehler innegehabt.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156: |
<?
include_once "includes/meta.php";
// Datensatz updaten in der DB
if($_REQUEST[edit]=='true' and $_REQUEST[update]=='true') {
$db->query("update vb_dienste set beschreibung='$_REQUEST[beschreibung]', artikel='$_REQUEST[artikel]' where did='$_REQUEST[did]'");
echo "<div class='text'>Dienstleistung wurde editiert<br><br>";
}
// Datensätze löschen
if($_REQUEST[edit]=='true' and $_REQUEST['delete']=='true') {
$db->query("delete from vb_dienste where did='$_REQUEST[did]'");
echo "<div class='text'>Die Dienstleistung wurde gelöscht.<br><br>\n";
}
// Datensatz in DB speichern
if($_REQUEST[add]=='true' and $_REQUEST[insert]=='true') {
$db->query("insert into vb_dienste (mid, beschreibung, artikel) values ('$mitarbeiter','$_REQUEST[beschreibung]','$_REQUEST[artikel]')");
$id = mysql_insert_id();
if (count($_POST['mitarbeiter'])>0)
$mitarbeiterer = implode($_POST['mitarbeiter'],"&mitarbeiter[]=");
for ($i=0; $i<count($_POST['mitarbeiter']); $i++) {
$mitarbeiter = $_POST['mitarbeiter'][$i];
$db->query("insert IGNORE into vb_verweis (mitarbeiterid, dienstleistungid) values ('$mitarbeiter','$id')");
}
}
echo "<div class='text'>Die Dienstleistung wurde angelegt.<br><br>\n";
//Datensatz anlegen
if($_REQUEST[add]=='true' and $_REQUEST[insert]=='false') {
?>
<form name="formular" action="dansehen.php?add=true&insert=true" method="post">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#cccccc">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr bgcolor="#9FB1D4">
<td colspan="2"><b>Dienstleistung einfügen</b></td>
</tr>
<tr bgcolor="#ffffff">
<td class="fieldname">Mitarbeiterzugehörigkeit</td>
<td><select name="mitarbeiter[]" size="6" multiple>
<?
$result = mysql_query("SELECT * FROM vb_mitarbeiter order by mid ASC ");
echo mysql_error();
while ($ausgabe = mysql_fetch_array($result)) { ?>
<option value="<?echo $ausgabe["mid"]?>"<?if (is_array($mitarbeiter) AND in_array($ausgabe["mid"],$mitarbeiter)) {echo " SELECTED";}?>><?echo $ausgabe['vorname'].' '.$ausgabe['nachname'] ?></option>
<?
}
?>
</select>
</td>
</tr>
<tr bgcolor="#ffffff">
<td class="fieldname">Dienstleistungsbeschreibung (max 255 zeichen)</td>
<td><input type="text" name="beschreibung" size="35" value="" class="textfield"></td>
</tr>
<tr bgcolor="#ffffff">
<td class="fieldname">Beschreibung</td>
<td><textarea name="artikel" rows="10" cols="45" class="textfield"></textarea></td>
</tr>
<tr bgcolor="#ffffff">
<td class="fieldname"></td>
<td><input type="submit" value="Mitarbeiter speichern" class="button_submit"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<?
}
// Alle Datensätze ausgeben
if($_REQUEST[edit]=='true' and $_REQUEST[editform]=='true') {
$res = $db->query("select * from vb_dienste where did='$_REQUEST[did]'");
$row = $db->fetch_array($res);
?>
<form name="formular" action="dansehen.php?edit=true&update=true&did=<?=$_REQUEST[did]?>" enctype="multipart/form-data" method="post">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#cccccc">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr bgcolor="#9FB1D4">
<td colspan="2"><b>Dienstleistung editieren</b></td>
</tr>
<tr bgcolor="#ffffff">
<td class="fieldname">Dienstleistungsbeschreibung (255zeichen)</td>
<td><input type="text" name="beschreibung" size="35" value="<?=$row[beschreibung]?>" class="textfield"></td>
</tr>
<tr bgcolor="#ffffff">
<td class="fieldname">Beschreibung (HTML erlaubt)</td>
<td><textarea rows="10" cols="45" class="textfield"><?=$row[artikel]?></textarea></td>
</tr>
<tr bgcolor="#ffffff">
<td class="fieldname"></td>
<td><input type="submit" value="speichern" class="button_submit"></td>
</tr>
</tr>
</table>
</td>
</tr>
</table>
</form>
<?
}
?>
» <a href="dansehen.php?add=true&insert=false">Neue Dienstleistung erfassen</a><br>
<br>
<br>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#cccccc">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr bgcolor="#9FB1D4">
<td><b>Dienste</b></td>
<td align="center" colspan="2" width="30"><b>Optionen</b></td>
</tr>
<?
// alle Datensätze auslesen
$res = $db->query("select * from vb_dienste order by beschreibung asc");
while($row=$db->fetch_array($res)) {
echo "<tr bgcolor=\"#ffffff\">\n";
echo "<td>$row[beschreibung]</td>\n";
echo "<td align=\"center\"><a href=\"dansehen.php?edit=true&editform=true&did=$row[did]\"><img alt='Bearbeiten' src='img/edit.gif' border='0'></a></td><td align=\"center\"><a href=\"javascript:sicher('dansehen.php?edit=true&delete=true&did=$row[did]')\"><img alt='Löschen' src='img/trash.gif' border='0'></a></td>\n";
echo "</tr>\n";
}
?>
</table>
</td>
</tr>
</table>
<?
include_once "includes/footer.php";
?> |
|
von Austin Powers |
brali schrieb am 03.05.2006 08:46
Guten morgen zusammen..
|
Danke, Dir auch.
..
1:
2:
3:
4:
5:
6:
7:
8:
9:
10: | if($_REQUEST[add]=='true' and $_REQUEST[insert]=='true') {
if (count($REQUEST[mitarbeiter])>0)
$kategorienstr = implode($REQUEST[mitarbeiter],"&Mitarbeiter[]=");
$db->query("insert into vb_dienste (mid, beschreibung, artikel) values ('$_REQUEST[mitarbeiter]','$_REQUEST[beschreibung]','$_REQUEST[artikel]')");
$id = mysql_insert_id();
for ($i=0; $i<count($_REQUEST[mitarbeiter]); $i++) {
$db->query("insert into vb_verweis (mitarbeiterid, dienstleistungid) values ('$_REQUEST[mitarbeiter][$i]','$id')");
}
echo "<div class='text'>Die Dienstleistung wurde angelegt.<br><br>\n";
} |
Leider schreibt er immer nur einen Datensatz in die DB, so das auch immer nur ein Mitarbeiter mit dieser Dienstleistung verknüpft ist.
|
Ich würde mal schätzen da ist nur ein Mitarbeiterdatensatz übertragen.
Fehler im formular?
P.S.: Nacfolgend schreibe ich in das Zitat
Und hier eine Änderung -> wenn ich es so ändere (ich weiß nciht sehr glücklich das ganze), dann wirft er mir allen 4 mal in die Datenbank:
1:
2:
3:
4:
5:
6:
7: | // Datensatz in DB speichern
for ($i=0; $i<count($_REQUEST['mitarbeiter']); $i++) { //macht etwas mit allen gesendeten Datensätzen
foreach ($_REQUEST['mitarbeiter'] as $mitarbeiter) { // und nocheinmal, also sinnlos
$db->query("insert IGNORE into vb_verweis (mitarbeiterid, dienstleistungid) values ('$mitarbeiter','$id')");
}
}
|
|
Da hast Du doppelt gemoppelt. Nimm die for () schleife raus und lass foreach.
Schau dir den HTML Quelltext deines formulares an der ist wahrscheinlich falsch. (da ist bestimmt ein </form> wo es nicht hingehört)
Aber ohne mehr quelltext kann ich nichts sagen
|
von brali |
Wenn ich aus dem zweiten beispiel den eintrag in die DB so ändere:
1:
2:
3: | for ($i=0; $i<count($_REQUEST['mitarbeiter']); $i++) {
foreach ($_REQUEST['mitarbeiter'] as $mitarbeiter) {
$db->query("insert IGNORE into vb_verweis (mitarbeiterid, dienstleistungid) values ('$mitarbeiter[$i]','$id')"); |
$mitarbeiter[$i] einfüge, schreibt er mir zwar meine makierten datensätze in die DB aber auch 2 leere, weil ich 4 mögliche Auswahlkriterien habe.
ich blicke nichtmehr durch |
|
|
|