[GastForen Programmierung/Entwicklung PHP und MySQL mehrere Datensätze in einem Formular aktualisieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

9. Apr 2011, 14:06
Beitrag # 1 von 28
Bewertung:
(14176 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich möchte ein Formular erstellen wo ich alle Datensätze aus einer mySQL Tabelle aktualisieren kann wo der Wert einer bestimmten Spalte mit dem URL-Parameter übereinstimmt.

für den einzelnen Datensatz ist es ohne funktioniert es.
nur kann ich den Bereich nich so Wiederholen, so wie ich es mir vorstelle.

ist es überhaupt möglich, mehrere Datensätze in einem Formular zu ändern?

Gruss
Phips_CH
X

mehrere Datensätze in einem Formular aktualisieren

crisies
  
Beiträge gesamt: 138

30. Apr 2011, 18:41
Beitrag # 2 von 28
Beitrag ID: #470284
Bewertung:
(14040 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

doch es müsste eigentlich gehen. entweder werden die post-felder als array übergeben feldname[] oder es wir pro feldgruppe einen index angehängt feldname_1. dann braucht es pro Datensatz natürlich noch eine ID, damit auch die richtigen Daten upgedatet werden.

gruss
chris.w


als Antwort auf: [#468815]

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

1. Mai 2011, 13:10
Beitrag # 3 von 28
Beitrag ID: #470310
Bewertung:
(14013 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo chris.w
besten Dank schonmal.
Jeder Datensatz besitztschon eine eindeutige ID.

Was würdest Du mir empfehlen?
ich hab von beiden Möglichkeiten (noch) keine Ahnung.

Gruss
Phips_CH


als Antwort auf: [#470284]

mehrere Datensätze in einem Formular aktualisieren

crisies
  
Beiträge gesamt: 138

2. Mai 2011, 18:24
Beitrag # 4 von 28
Beitrag ID: #470421
Bewertung:
(13981 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

1. verbinde dich mit der Datebank und mache einen loop über das Resultset. Beispiele dazu findest Du hier: http://www.php.net/mysql_query

2. Innerhalb dieses Loops, generierst Du die Formularfelder als Arrays, inkl. ID-Feld. Ungefähr so...

Code
<input type="hidden" name="id[]" value="$row['id_db']" /><input type="text" name="testfeld[]" value="$row['testfeld_db']" /> 


3. Auf der Seite wo Du die Formulardaten verarbeitest, machst Du einen Loop über das ID-Feld und updatest die dazugehörenden Felder/Daten in der Datenbank, mit den Daten aus den Formularfeldern desselben Index:

Code
foreach($_POST['id'] as $index => $value){ 
mysql_query("UPDATE db_name SET testfeld_db = '".mysql_real_escape_string($_POST['testfeld'][$index])."' WHERE id='".mysql_real_escape_string($value)."'")
}


Das sind alles Beispiele, welche natürlich noch ausprogrammiert werden müssten.

gruss
chris.w.


als Antwort auf: [#470310]

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

4. Mai 2011, 06:50
Beitrag # 5 von 28
Beitrag ID: #470527
Bewertung:
(13936 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die Verbindung zur DB steht.

Ich möchte aber die Optionsschaltergruppe aktualisieren.
Geht das auch mit eine Array?

Dann werde ich mich mal mit Array befassen. :-)


als Antwort auf: [#470421]

mehrere Datensätze in einem Formular aktualisieren

crisies
  
Beiträge gesamt: 138

4. Mai 2011, 16:46
Beitrag # 6 von 28
Beitrag ID: #470635
Bewertung:
(13914 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips

ich weiss zwar nicht was du mit optionsschaltergruppen meinst, aber grundsätzlich können eigentlich alle felder als arrays übergeben werden. so zb. auch radiobuttons etc. Das problem dort, sofern alle gleich heissen, könnte aus der gesamten Gruppe nur ein Eintrag ausgewählt werden. Ich würde als einen Loop über die Datensätze machen. Dort drinn die jeweilige DB-DatensatzID zu jedem Formfeldnamen hinzufügen (name="feldeins_123") - damit sind diese unique - und ein hidden Feld als array mitgeben, in welchem alle ID's mitgeführt werden (type="hidden" name="ids[]" value="123"). Dieses Feld wird dann in der Bearbeitungsseite für den Loop gebraucht.

Code
foreach($_POST['ids'] as $value){  
mysql_query("UPDATE db_name SET feldeins_db = '".mysql_real_escape_string($_POST['feldeins_'.$value])."' WHERE id='".mysql_real_escape_string($value)."'")
}


gruss
chris.w.


als Antwort auf: [#470527]

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

4. Mai 2011, 17:18
Beitrag # 7 von 28
Beitrag ID: #470641
Bewertung:
(13909 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Genau Radiobuttons meinte ich.
Ein Datensatz besteht aus einer ID und zwei Spalten Mitgliedernummer und Terminnummer welche als Fremdschlüssel dienen.
Eine weitere Spalte dient als Status wo ich mit drei Radiobuttons entweder 1, 2 oder 3 reinschreiben möchte (Button1 -> Wert 1, Button2 -> Wert 2 und Button3 -> Wert 3). Und das bei allen Datensätze wo der Spalte mit der Terminummer mit einem Abfrage übereinstimmt.


als Antwort auf: [#470635]

mehrere Datensätze in einem Formular aktualisieren

crisies
  
Beiträge gesamt: 138

4. Mai 2011, 17:33
Beitrag # 8 von 28
Beitrag ID: #470642
Bewertung:
(13905 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ok das heisst du möchtest eigentlich ein formular erstellen über das du alle einträge dieser datenbank mit dem status updaten kannst und zwar jeweils für alle mit derselben terminnummer?

Wenn dem so ist, mache einen select über die Terminnummer-Tabelle, danach einen loop über dieses recordset und erstelle pro eintrag ein hidden feld für die terminnummer als array (dieses dient als id), sowie diese radiobuttons, mit dem durch die terminnummer ergäntzen feldnamen. in der bearbeitenden seiten, loopst du über das terminnummern array post feld und updatest alle einträge mit dieser nummer durch den übergebenen status aus dem entsprechenden radiobutton.

gruss
chris.w.


als Antwort auf: [#470641]

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

7. Mai 2011, 08:05
Beitrag # 9 von 28
Beitrag ID: #470856
Bewertung:
(13821 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
kurze Frage

Es funktioniert, Arrays anzulegen und mit echo auszugeben. Langsam versteh ich auch die Funktion und Vorteile von diesem Ding.

Aber was muss ich machen damit ich den Wert aus meiner DB im Array habe?
Das will bei mir noch nicht klapen.

Gruss
Phips_CH


als Antwort auf: [#470642]

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

9. Mai 2011, 07:12
Beitrag # 10 von 28
Beitrag ID: #470913
Bewertung:
(13761 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
durch rumprobieren hab ich es geschafft den ersten Datensatz in der Tabelle der Datenbank in das Array zu schreiben.

schreib ich dann in die Eckigen Klammern des Arrays die Datensatz ID?

Denn ich möchte ja am schluss alle Datensätze aus der Abfrage im Formular sehen. und jedem einen eigenen Status zuweisen.

Gruss
Phips_CH


als Antwort auf: [#470856]

mehrere Datensätze in einem Formular aktualisieren

crisies
  
Beiträge gesamt: 138

9. Mai 2011, 18:33
Beitrag # 11 von 28
Beitrag ID: #471003
Bewertung:
(13718 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

Entweder schreibst du die ID in die eckigen Klammern, damit kannst Du diese dann über den foreach als index wieder auslesen. oder Du machst für die ID ein eigenes Array-FormularFeld.

Ich würde es folgendermassen machen:

Code
<form action=""> 
<?php
// Datensätze aus der DB lesen
$result = mysql_query('SELECT * FROM ...');
// Durch loopen und erstellen der Formularfelder
while($row = mysql_fetch_array($result)){
echo '<input type="hidden" name="id[]" value="'.$row['id'].'" />';
echo '<input type="radio" name="status_'.$row['id'].'" value="1" />';
echo '<input type="radio" name="status_'.$row['id'].'" value="2" />';
echo '<input type="radio" name="status_'.$row['id'].'" value="3" />';
}
?>
<input type="submit" />
</form>


Dann nachdem das Formular versendet wurde werden die Werte in die Datenbank zurück geschrieben:

Code
<?php 
foreach($_POST['id'] as $id){
mysql_query('UPDATE SET status = '.$_POST['status_'.$id].' WHERE id = '.$id);
}
?>


mfg
chris.w.


als Antwort auf: [#470913]

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

10. Mai 2011, 14:21
Beitrag # 12 von 28
Beitrag ID: #471070
Bewertung:
(13678 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo chris.w.

ich hab jetzt alle id durch die ID des Datensatzes ersetzt und auch die Tabebbelnnamen so eingefügt wie sie in der DB benannt sind.

aber die Verbindung zur Datenbank funktioniert nur bedinngt. ich lese die ID der Datensätze in ein Texfeld aus. (Als Kontrolle) Das funktioniert auch nur die Radiobuttons liest er nicht aus. Ich hab schon alles mögliche versucht.

Ich kann den Fehler einfach nicht finden.

Code
<form action="">  
<?php // Datensätze aus der DB lesen
$result = mysql_query ('SELECT * FROM pobi_adrterm WHERE adte_IDter = 67');
// Durch loopen und erstellen der Formularfelder
while($row = mysql_fetch_array($result))
{
echo '<input type="text" name="id[]" value="'.$row[adte_ID].'" />';
echo '<input type="radio" name="adte_status'.$row[adte_ID].'" value="1" />';
echo '<input type="radio" name="adte_status'.$row[adte_ID].'" value="2" />';
echo '<input type="radio" name="adte_status'.$row[adte_ID].'" value="3" />';
}
?>
<input type="submit" />

</form>


<?php
foreach($_POST['adte_ID'] as $id)
{
mysql_query('UPDATE pobi_adrterm SET adte_status = '.$_POST['adte_ID'.$id].' WHERE adte_ID = '.$id);
}
?>


pobi_adterm => heisst bei mir die Tabelle
adte_ID => ist die Spalte mit der Datensatz ID
adte_terID => ein Fremdschlüssel
adte_status => währe der Status den ich mit den Radiobuttons aktualisieren möchte.

Gruss
Phips_CH


als Antwort auf: [#471003]

mehrere Datensätze in einem Formular aktualisieren

crisies
  
Beiträge gesamt: 138

10. Mai 2011, 18:00
Beitrag # 13 von 28
Beitrag ID: #471114
Bewertung:
(13660 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

ich denke das feld 'adte_ID' gibt es ja gar nicht ;) versuche es mal so:

Code
form action="">   
<?php // Datensätze aus der DB lesen
$result = mysql_query ('SELECT * FROM pobi_adrterm WHERE adte_IDter = 67');
// Durch loopen und erstellen der Formularfelder
while($row = mysql_fetch_array($result))
{
echo '<input type="text" name="id[]" value="'.$row[adte_ID].'" />';
echo '<input type="radio" name="adte_status'.$row[adte_ID].'" value="1" />';
echo '<input type="radio" name="adte_status'.$row[adte_ID].'" value="2" />';
echo '<input type="radio" name="adte_status'.$row[adte_ID].'" value="3" />';
}
?>
<input type="submit" />

</form>


<?php
foreach($_POST['id'] as $id)
{
mysql_query('UPDATE pobi_adrterm SET adte_status = '.$_POST['adte_status'.$id].' WHERE adte_ID = '.$id);
}
?>


gruss
chris.w.


als Antwort auf: [#471070]

mehrere Datensätze in einem Formular aktualisieren

Phips_CH
Beiträge gesamt: 74

11. Mai 2011, 17:26
Beitrag # 14 von 28
Beitrag ID: #471213
Bewertung:
(13613 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi chris.w.

Leider war dies nicht der Fehler. Mal nicht der Fehler der den Code am laufen hindert.

Aufällig ist, das nach dem Absenden eines Versuchs, in der URL "&id%5B%5D" steht und dahinter jeweils das ID der Datensätze die auch in den Textfeldern Angezeigt werden.

Wenn ih aktualisieren möcht, zeigt er mir manchmal nur den Submit Button und sonst gar nichts.

Hast du noch eine Idee? ;-)


als Antwort auf: [#471114]

mehrere Datensätze in einem Formular aktualisieren

crisies
  
Beiträge gesamt: 138

11. Mai 2011, 17:32
Beitrag # 15 von 28
Beitrag ID: #471214
Bewertung:
(13608 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi phips,

Code
<form method="post"> 


damit sollte das formular via post und nicht get versendet werden.

gruss
chris.w.


als Antwort auf: [#471213]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!