WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Einen Datensatz mit mehreren Artikeln vernüpfen?

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Einen Datensatz mit mehreren Artikeln vernüpfen? - 27 Juli 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Einen Datensatz mit mehreren Artikeln vernüpfen?
brali
Feiertags-Poster
Threadstarter




Beiträge: 37

Guten morgen zusammen..

ich befürchte ich habe mal wieder was neues.

Ich lege mir einen Dienstleistung an und möchte gleichzeit durch ein Multiform einzelne Mitarbeiter mit dieser Dienstleistung verknüfpen.

Mein Code bisher:
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; $iquery("insert into vb_verweis (mitarbeiterid, dienstleistungid) values ('$_REQUEST[mitarbeiter][$i]','$id')"); 
} 
echo "
Die Dienstleistung wurde angelegt.

\n"; }


Leider schreibt er immer nur einen Datensatz in die DB, so das auch immer nur ein Mitarbeiter mit dieser Dienstleistung verknüpft ist.

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: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15:
// Datensatz in DB speichern 
if($_REQUEST[add]=='true' and $_REQUEST[insert]=='true') { 
if (count($mitarbeiter)>0) 
$mitarbeiter = implode($mitarbeiter,"&mitarbeiter[]="); 

$db->query("insert into vb_dienste (beschreibung, artikel) values ('$_REQUEST[beschreibung]','$_REQUEST[artikel]')"); 
$id = mysql_insert_id(); 

for ($i=0; $iquery("insert IGNORE into vb_verweis (mitarbeiterid, dienstleistungid) values ('$mitarbeiter','$id')"); 
} 
} 
} 
echo "
Die Dienstleistung wurde angelegt.

\n";


Habt Ihr nen brauchbaren Rat!?



---
-= Das Menschliche an Computern ist ihre Gewissenlosigkeit =-

  Profil   Editieren   Zitieren
brali
Feiertags-Poster
Threadstarter




Beiträge: 37

Wenn ich aus dem zweiten beispiel den eintrag in die DB so ändere:



1: 
2: 
3:
for ($i=0; $iquery("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

---
-= Das Menschliche an Computern ist ihre Gewissenlosigkeit =-

  Profil   Editieren   Zitieren
Austin Powers
Mausakrobat




Beiträge: 169

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; $iquery("insert into vb_verweis (mitarbeiterid, dienstleistungid) values ('$_REQUEST[mitarbeiter][$i]','$id')"); 
} 
echo "
Die Dienstleistung wurde angelegt.

\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; $iquery("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 wo es nicht hingehört)
Aber ohne mehr quelltext kann ich nichts sagen


---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

  Profil   Website   Editieren   Zitieren
brali
Feiertags-Poster
Threadstarter




Beiträge: 37

Hi Austin, THX für deine Mühe.

Hier der ganze Quelltext und die änderungen die ich gemacht habe damit es nun funktioniert.

Das
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:
query("update vb_dienste set beschreibung='$_REQUEST[beschreibung]', artikel='$_REQUEST[artikel]' where did='$_REQUEST[did]'");
  
  echo "
Dienstleistung wurde editiert

"; } // Datensätze löschen if($_REQUEST[edit]=='true' and $_REQUEST['delete']=='true') { $db->query("delete from vb_dienste where did='$_REQUEST[did]'"); echo "
Die Dienstleistung wurde gelöscht.

\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; $iquery("insert IGNORE into vb_verweis (mitarbeiterid, dienstleistungid) values ('$mitarbeiter','$id')"); } } echo "
Die Dienstleistung wurde angelegt.

\n"; //Datensatz anlegen if($_REQUEST[add]=='true' and $_REQUEST[insert]=='false') { ?>
Dienstleistung einfügen
Mitarbeiterzugehörigkeit
Dienstleistungsbeschreibung (max 255 zeichen)
Beschreibung
query("select * from vb_dienste where did='$_REQUEST[did]'"); $row = $db->fetch_array($res); ?>
Dienstleistung editieren
Dienstleistungsbeschreibung (255zeichen)
Beschreibung (HTML erlaubt)
» Neue Dienstleistung erfassen


query("select * from vb_dienste order by beschreibung asc"); while($row=$db->fetch_array($res)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } ?>
Dienste Optionen
$row[beschreibung]BearbeitenLöschen


---
-= Das Menschliche an Computern ist ihre Gewissenlosigkeit =-

  Profil   Editieren   Zitieren
Austin Powers
Mausakrobat




Beiträge: 169

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

---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

Diese Nachricht wurde geändert von: Austin Powers
  Profil   Website   Editieren   Zitieren
brali
Feiertags-Poster
Threadstarter




Beiträge: 37

Bitte?

nix Baustelle! funzt wunderbar!
bis auf die eine Stelle die aber, wie ich bereits sagte nun funktioniert.

Grüße und danke!

---
-= Das Menschliche an Computern ist ihre Gewissenlosigkeit =-

  Profil   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Einen Datensatz mit mehreren Artikeln vernüpfen?

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Einen Datensatz mit mehreren Artikeln vernüpfen? im Forum Homepage Hosting AntwortenLetztes Posting
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
Fertige PHP Scripte für Ihre Homepage
in "PHP & MySQL"
0 16.12.2015 12:02 von PHP-Script-Shop



Besucher : 8060275    Heute : 462     Gestern : 1088     Online : 47     27.7.2024    8:00      0 Besucher in den letzten 60 Sekunden        
Nach oben