WinFuture-Forum.de: [mysql] Per Formular Werte ändern - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[mysql] Per Formular Werte ändern CMS- EinstellungsScript


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. Juni 2008 - 19:10

Hallo Leute,
ich komme nun immer weiter mit meinem CMS. Doch jetzt bin ich wirklich am verzweifeln.
Mein kleines CMS arbeitet mit MySQL und einem Webinterface, so wies üblich ist.
Ich habe nun eine Tabelle die etwa so aufgebaut ist:

Name Einstellung 1  Name Einstellung 2  Name Einstellung  3
 Einstellung  zu 1   Einstellung  zu 2  Einstellung  zu 3


Ich möchte nun per Formular die Werte ändern:

In meinen zahlreichen Versuchen bin ich nie zum gewünschten Ergebnis gekommen.
Da ich wenn mein CMS noch weiterentwickeln möchte komme ich da nicht rum und möchte das Prinzip auch verstehen.

Hierzu zu sagen ist, dass ich die momentanen Einstellungen im Input zum abändern stehen haben will. ich mache es mit value='abc'. Das ist also kein Problem.

Ich brauche nun also eure Ratschläge wie ich sowtwas von Aufbau bis Umsetzung coden machen kann.
Kurz: Per Formular und PHP Werte in MySQL-Tabellen ändern! :(

Danke,
Toasterfraktion

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 18. Juni 2008 - 16:52

0

Anzeige



#2 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 15. Juni 2008 - 19:14

Um in einer Datenbanktabelle Werte zu ändern muß man aber keine Dateien uploaden oder wie ist das Formular zu verstehen?
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#3 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. Juni 2008 - 19:27

Nein! Das hast du was falsch verstanden. Das sind nur gearde mein Einstellungen vom Uploadscript.
Das sind Textfelder wo dann der Wert der Einstellung drin steht.
<input name='abc' value='".$old."' und dann ist der Neue $_POST['abc']. Da wird nichts Hochgeladen! :-D

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 15. Juni 2008 - 19:28

0

#4 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 517
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 15. Juni 2008 - 19:36

Beim Aufruf der Webseite werden die Einstellungen aus der Datenbank geladen und in das Formular eingefügt. Beim Abschicken werden dann die neuen Einstellungen validiert und zurück in die Datenbank eingefügt.
0

#5 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. Juni 2008 - 20:33

Hm ja soweit bin ich schon! Aber alles total "verkramft". ich wollte dass hier setzten:
$refresh='<meta http-equiv="Refresh" content="0"; URL=c_tl.php">';
Nur ich habe es so aufgebaut.

Wenn Einstellung 1 in Datenbank anders als $_Post[von Einstellung1]
Schreibe neuen Wert in Datenbank.
danach rufe sofort die Seite neu auf.

Wenn Einstellung 2 in Datenbank anders als $_Post[von Einstellung2]
Schreibe neuen Wert in Datenbank.
danach rufe sofort die Seite neu auf.

Wenn Einstellung 3 in Datenbank anders als $_Post[von Einstellung3]
Schreibe neuen Wert in Datenbank.
danach rufe sofort die Seite neu auf.

Und so weiter.
Da aber schon bei Einstellung 1 der header gesetzt wurde kommt PHP nur bis ca Einstellung 2 und wird dann neu geladen. Wenn ich jetzt aber den code zum refreshen bei Einstellung 1 wegglasse und ich ihn meinetwegen bei der letzten gesetzt habe die aber gar nicht vergeben ist funzt das auch nicht.^^ Kompliziert Kompliziert !

Kann nicht jemand mal ein einfaches Beispiel posten? Nur damit mir das Prinzip klar wird.
0

#6 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 517
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 15. Juni 2008 - 23:07

Was genau willst du mit dem refresh erreichen? Und warum rufst du die Seite nach jedem Feld neu auf?

Dad folgende Beispiel muss noch mit dem Datenbank Code ergänzt werden.

<?php

// todo: zuerst alte Einstellungen (old array) aus der Datenbank einlesen
$old = array(
  'feld_1' => 'hello',
  'feld_2' => 'world',
  );

$new = array();

// todo: neue Einstellungen einlesen, eventuell überprüfen
if (isset($_POST['submit']))
{
  foreach($old as $field => $value)
  {
	if (isset($_POST[$field]))
	{
	  $new[$field] = $_POST[$field];
	}
  }
}

// todo: neue Einstellungen (new array) setzen

?>
<html>
<body>
<form name="input" action="test.php" method="post">
<?php foreach($old as $field => $value) { ?>
<?php echo $field; ?>: <input type="text" name="<?php echo $field; ?>" value="<?php echo (isset($new[$field])) ? $new[$field] : $value; ?>"><br/>
<?php } ?>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 16. Juni 2008 - 12:19

Ich habs nun soweit, dass er alle Werte ausliest und in die Formulare schreibt.
Was muss ich jetzt weiter machen? Kann mir nochmal jemand helfen?

// todo: neue Einstellungen einlesen, eventuell überprüfen
 if (isset($_POST['submit']))
 {
   foreach($old as $field => $value)
   {
	 if (isset($_POST[$field]))
	 {
	   $new[$field] = $_POST[$field];
	 }
   }
 }
 
 
 // todo: neue Einstellungen (new array) setzen
 
 ?>
 
 <form name="input" action="" method="post">
 <?php foreach($old as $field => $value) { ?>
 <?php echo $field; ?>: <input type="text" name="<?php echo $field; ?>" value="<?php echo (isset($new[$field])) ? $new[$field] : $value; ?>"><br/>
 <?php } ?>
 <input type="submit" name="submit" value="Submit">
 </form>


Ich weiß nicht genau was ich bei den beiden todo's machen muss!^^

Und wie kann ich mithilfe dieses Scripts einen SQL befhel erstellen der nur die geänderten Daten überträgt?

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 18. Juni 2008 - 16:54

0

#8 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 18. Juni 2008 - 16:55

Kann mir da jemand helfen?
0

#9 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 517
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 18. Juni 2008 - 18:38

In der foreach Schleife könntest du überprüfen ob die Einstellungen gültig sind, du kannst es zuerst aber auch weg lassen und bei Bedarf später ergänzen.

Wie du gewünscht hast sind im $new array nur die Einstellungen, die geändert haben. Du musst also nur noch diese Einstellungen wieder in die Datenbank übernehmen.
Da ich nicht genau verstanden habe wie deine Einstellungen in der Datenbank gespeichert werden kann ich dir auch kein Beispiel erstellen.

P.S. Möglicherweise wäre es einfacher alle Einstellungen d.h. auch die nicht geänderten in die Datenbank zu übernehmen und nicht nur die geänderten.
0

#10 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 18. Juni 2008 - 20:01

Danke bardelot, der kleine Anstoß hat das Script zum laifen gebracht. Nun funzt alles soweit.
Ich baue nur gearde in die den <form> Tag was ein:

<form name="input" action="" method="post" onsubmit="this.form.confirm = confirm('Daten wirklich ändern?');">


Ich habe mal anstatt auf OK! auf Abbrechen! geklickt. Es werden trotzdem Werte geändert bzw das Script läuft weiter!

Ich brauche aber ein Fenster das wenn man Abbrechen klickt nicht weitermacht!!!

Gruß
Toasterfraktion
0

#11 Mitglied ist offline   bardelot 

  • Gruppe: aktive Mitglieder
  • Beiträge: 517
  • Beigetreten: 20. März 04
  • Reputation: 0

geschrieben 18. Juni 2008 - 21:17

<form name="input" action="" method="post" onsubmit="return this.confirm">
[...]
<input type="submit" name="submit" value="Submit" "onclick=" this.form.confirm = window.confirm('Daten wirklich ändern?');">
</form>

Dieser Beitrag wurde von bardelot bearbeitet: 18. Juni 2008 - 21:34

0

#12 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 18. Juni 2008 - 22:17

Super! :angry:
Vielen Dank für deine vielen Bemühungen Bardelot!

Noch einen schönen Abend!
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0