Formular an funktion weiterleiten?!

genauso wie du es vermutet hast ist es auch...ich rufe über die nackte index.php ein amodul.php auf......
so nun kann ich über index.php?section=blabla die jeweiligen seiten includen.....

habe das nun bei der index.php vom impressum so gemacht: index.php?section=impressum&do=update

Problem ist......er leitet zwar nach klick auf update wieder auf die index.php vom impressum um section=impressum...aber er führt das update nicht aus....also do=update wird nicht ausgeführt.

Woran kann das liegen?

MFG Niels
 
Liegt daran das dein Skript nicht richtig ist bzw. unvollständig.
Du musst doch ein mysql_query($impressupdate); reinhauen, damit der deine Anfrage auch sendet.
Die Syntax für dein Update ist glaube ich auch nicht ganz korrekt. Möglicherweise funktioniert es, aber ich hab es so noch nicht gesehen. Chek ma http://dev.mysql.com/doc/refman/5.1/de/update.html für die korrekte Update-Syntax.

Du kannst auch alles mittels mysql_error() auf Fehler überprüfen.

Generell würd ich dir raten dich mal bissl durch PHP & Mysql durchzulesen.
 
Also habe mir deine Syntaxvariante nochmal angeschaut....aber die geht net.....

impressum.php:
PHP:
<?php
  // Prüfen ob schon ein Impressum vorhanden ist
  dbpruefen();
  
  // Verbindung zur Datenbank herstellen
  function dbconnect(){
     // benötigte Dateien
     include("sql.php");
	 
     $connect = mysql_connect($dbserver, $dbuser, $dbpw) or die ("Es konnte keine Verbindung mit der DB hergestellt werden");
	 $dbselect = mysql_select_db($dbname, $connect) or die ("DB-Table konnte nicht ausgewählt werden");
	  
  }
  
  // Überprüfen ob Tables gefüllt sind
  function dbpruefen(){
     dbconnect();
	 $sql = "SELECT autor, domains, inhalt FROM impressum";
	 $result = mysql_query($sql);
	 $row = mysql_fetch_array($result);
	 
	 // Variablen bestimmen
	 $autor = $row["autor"];
	 $domains = $row["domains"];
	 $inhalt = $row["inhalt"];
	 
	 // Formular generieren + DB-Einträge einfügen
	 echo "<p align=\"center\"><font size=\"12\"><u><b>Impressum</u></b></font></p>";
	 echo "<form action=\"index.php?section=impressum&do=update\" method=\"post\">";
	 echo "<table align=\"center\" style=\"width:600; background-color:#CCCCCC\">";
	 echo "<tr>";
	 echo "<td>Autor:</td><td><input type=\"text\" name=\"autor\" value=\"$autor\"></td>";
	 echo "</tr>";
	 echo "<tr>";
	 echo "<td>Domains:</td><td><input type=\"text\" name=\"domains\" value=\"$domains\"></td>";
	 echo "</tr>";
	 echo "<tr>";
	 echo "<td valign=\"top\">Inhalt:</td><td><textarea name=\"inhalt\" rows=\"60\" cols=\"70\">$inhalt</textarea></td>";
	 echo "</tr>";
	 echo "<tr>";
	 echo "<td></td><td><input type=\"submit\" value=\"Save\"></td>";
	 echo "</table>";
	 echo "</form>";
  }	 
	 
	  if($_POST[$do=="update"])
	  {
	   // Verbindung zur Datenbank
	   dbconnect();
	   // Vars definieren
	   $autor = $_POST['autor'];
       $domains = $_POST['domains'];
       $inhalt = $_POST['inhalt'];
	   
	   // MySql-DB updaten
	   $impressupdate = "UPDATE impressum SET autor=$autor, domains=$domains, inhalt=$inhalt"; 
	   $senden = mysql_query($impressupdate);					
	     if ($senden)
		 {
		   dbpruefen();
		 }
		 else
		 {
		   echo "Die Einträge konnten nicht editiert werden!";
		 }     
	  }
?>

Generell habe ich nun geändert:
-Nach dem formular wird die Funktion dbpruefen(); beendet.
-if($do=='update') habe ich durch if($do = $_POST['update']) ersetzt
---> im if codeblock habe ich dann den updatevorgang eingebaut


aber leider wird die Datenbank imemr noch nicht geupdatet

MFG Niels
 
Ne das stimmt so nicht. Ich hab das Script wie du es haben wolltest ma geschrieben. Ist zwar net große Sahne, aber hauptsache es funktioniert und du kannst dich daran orienteiren. Falls du fragen haben solltest, frag ruhig.

PHP:
<?php
  
// Verbindung zur Datenbank herstellen
function dbconnect()
  {
    
     // benötigte Dateien
     include("sql.php");
     
     $connect = mysql_connect($dbserver, $dbuser, $dbpw) or die ("Es konnte keine Verbindung mit der DB hergestellt werden");
     $dbselect = mysql_select_db($dbname, $connect) or die ("DB-Table konnte nicht ausgewählt werden");
       

  }
  
dbconnect();

if($_POST['do'] == 'update')
  {

       // MySql-DB updaten
       $impressupdate = "UPDATE impressum SET autor='$_POST[autor]', domains='$_POST[domains]', inhalt='$_POST[inhalt]'"; 
       $senden = mysql_query($impressupdate);     
  
       if ($senden)
         {
         	echo "Die Einträge wurden erfolgreich editiert!";
         } 
         else
         {
         	echo "Die Einträge konnten nicht editiert werden!";
         }    
  }
    
//Datensätze aus Datenbank holen
$sql = "SELECT * FROM impressum";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

     
// Formular generieren + DB-Einträge einfügen
echo <<<EOL

<h1 style="text-align:center;">Impressum</h1>
<form action="$PHP_SELF?section=impressum" method="post">
 <table align="center" style="width:600; background-color:#CCCCCC">
  <tr>
   <td>Autor:</td><td><input type="text" name="autor" value="$row[autor]"></td>
  </tr>
  <tr>
   <td>Domains:</td><td><input type="text" name="domains" value="$row[domains]"></td>
  </tr>
  <tr>
   <td valign="top">Inhalt:</td><td><textarea name="inhalt" rows="60" cols="70">$row[inhalt]</textarea></td>
  </tr>
  <tr>
   <td colspan="2">
    <input type="submit" name="save" value="Save">
    <input type="hidden" name="do" value="update">
   </td>
  </tr>
 </table>
</form>
    
EOL;

?>
 
Also es jez....thx an der Stelle


hauptsache es geht sag ich mir auch immer.....habe vor paar Tagen angefangen php zu lernen weil ich vorher nur html konnte und naja man braucht mal was neues......ich werde den code nach und nach imemr wieder überarbeiten.....mit den sachen die ich neu dazulerne^^


MFG Niels
 
Dann solltest du lieber mit kleineren Sachen anfangen und rumtesten. Nunja, egal ... jeder lernt dazu :)
 
Zurück