Mysql daten in formular laden editieren und wieder in mysql abspeichern

ryserstephan

Mitglied
Hallo zusammen ich habe ein kleinens problem, ich habe ein formular das daten aus der Mysql ausliesst in eine TextArea ich will das mann die bearbeiten erweitern kann.
Und der vorhandene eintrag ersetzt!
Habs fast gepackt leider wenn ich die daten geändert habe und wieder hochladen will, wird einfach nur ein ein neuer eintrag gemacht der lehr ist.
Solle aber eben ersetzt werden.
*PHP BUTTON GEHT NICHT*<form action="feedback.php" method="post">
<textarea>
<?php
$db_dbname = 'zielvereinbarung';
$db_user = 'root';
$db_pw = '';
$db_host = 'localhost';

$tabellenname = 'daten';
$id = $row['id'];
$name = $row['name'];
$C1 = $row['C1'];
$C2 = $row['C2'];
$C3 = $row['C3'];
$C4 = $row['C4'];
$C5 = $row['C5'];
$C6 = $row['C6'];
$C7 = $row['C7'];
$C8 = $row['C8'];
$C9 = $row['C9'];
$C10 = $row['C10'];
$C11 = $row['C11'];
$datum = $row['datum'];

mysql_connect($db_host, $db_user, $db_pw);
mysql_select_db($db_dbname);

$sql = "Select * FROM daten";
$q = mysql_query($sql);
$data = mysql_fetch_array($q);

echo $data['name'];

$sql = "Update daten SET C1= '".$C1."',
C2= '".$C2."',
C3= '".$C3."',
C4= '".$C4."',
C5= '".$C5."',
C6= '".$C6."',
C7= '".$C7."',
C8= '".$C8."',
C9= '".$C9."',
C10= '".$C10."',
C11= '".$C11."',
name= '".$name."',
datum= '".$datum."'";

?>

</textarea >
<br>
<textarea cols="105">
<?php
echo $data['C1'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C2'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C3'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C4'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C5'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C6'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C7'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C8'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C9'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C10'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['C11'];
?>
</textarea>
<br>
<textarea cols="105">
<?php
echo $data['datum'];
?>
</textarea>
<br>
<input type="submit">
</form>

Hoffentlich siet jemand mein fehler.
Danke im foraus und ich bin dankbar für jeden TIP
 
Alle Textareas haben keinen Name, es fehlt ein Form start-tag, in dem du method=post am besten einstellst. Dann alle Variablen wieder mit $_POST['feld_name'] entgegennimmt.
 
Super es geht nur noch eine kleinekeit, und zwar erstellt er einfach einen neuen einrag mit den genäderten daten.Ich möchte aber das er den eintrag einfach ersetzt. Siest du da eine möglichkeit =

Es sollte einfach den eintrag ersetzen leider erstellt es einen neuen.
der code ist der gleiche einfach das die textArea alle einen namen haben.
 
Solang da update steht wollte er keinen neuen erstellen, was dir aber unbedingt noch fehlt ist eine WHERE bedinung sonst änderst du immer alle Datensätze. Also eine ID mit in dein Formular übergeben anhand der du die einträge eindeutig identifizieren kannst. In der Query wird dann einfach WHERE `id` = $id angehangen.

Vielleicht postest du nochmal den code der einfügt statt zu ändern. Und diesmal bitte in [ PHP ] BB Code das es leichter lesbar wird.
 
sodela wie gesagt das bestehende problem ist immer noch, es wird ständig ein neuer eintrag erstellt,und nicht wie ich wollte einfach der andere über schrieben.
Hier der code :
PHP:
<form action="feedback.php" method="post">
<textarea name="name" rows="1" cols="105">
<?php

$db_dbname = 'zielvereinbarung'; 
$db_user = 'root'; 
$db_pw = ''; 
$db_host = 'localhost'; 

$tabellenname = 'daten'; 
$id = $_POST['id'];
$name = $_POST['name'];
$C1 = $_POST['C1'];
$C2 = $_POST['C2'];
$C3 = $_POST['C3'];
$C4 = $_POST['C4'];
$C5 = $_POST['C5'];
$C6 = $_POST['C6'];
$C7 = $_POST['C7'];
$C8 = $_POST['C8'];
$C9 = $_POST['C9'];
$C10 = $_POST['C10'];
$C11 = $_POST['C11'];
$datum = $_POST['datum'];

mysql_connect($db_host, $db_user, $db_pw); 
mysql_select_db($db_dbname);

$sql = ("Select * FROM daten WHERE id ='" . $_GET['id'] . "';");
$q = mysql_query($sql);
$data = mysql_fetch_array($q);

echo $data['name'];

$sql = "Update daten SET C1= '".$C1."', 
                         C2= '".$C2."',  
                         C3= '".$C3."',
                         C4= '".$C4."',
                         C5= '".$C5."',
                         C6= '".$C6."',
                         C7= '".$C7."',
                         C8= '".$C8."',
                         C9= '".$C9."',
                         C10= '".$C10."',
                         C11= '".$C11."',
                         name= '".$name."',
                         datum= '".$datum."'";
                        
                         
?>

</textarea >
<br>
<textarea name="C1" rows="1" cols="105">
<?php 
echo $data['C1'];
?>
</textarea>
<br>
<textarea name="C2" rows="1" cols="105">
<?php 
echo $data['C2'];
?>
</textarea>
<br>
<textarea name="C3" rows="1" cols="105">
<?php 
echo $data['C3'];
?>
</textarea>
<br>
<textarea name="C4" rows="1" cols="105">
<?php 
echo $data['C4'];
?>
</textarea>
<br>
<textarea name="C5" rows="1" cols="105">
<?php 
echo $data['C5'];
?>
</textarea>
<br>
<textarea name="C6" rows="1" cols="105">
<?php 
echo $data['C6'];
?>
</textarea>
<br>
<textarea name="C7" rows="1" cols="105">
<?php 
echo $data['C7'];
?>
</textarea>
<br>
<textarea name="C8" rows="1" cols="105">
<?php 
echo $data['C8'];
?>
</textarea>
<br>
<textarea name="C9" rows="1" cols="105">
<?php 
echo $data['C9'];
?>
</textarea>
<br>
<textarea name="C10" rows="1" cols="105">
<?php 
echo $data['C10'];
?>
</textarea>
<br>
<textarea name="C11" rows="1" cols="105">
<?php 
echo $data['C11'];
?>
</textarea>
<br>
<textarea name="datum" rows="1" cols="105">
<?php 
echo $data['datum'];
?>
</textarea>
<br>
<input type="submit">
</form>
 
Minimale änderungen, in erster Linie die ID nochmal mitübergeben und als where benutzen:

PHP:
<?php

$db_dbname = 'zielvereinbarung'; 
$db_user = 'root'; 
$db_pw = ''; 
$db_host = 'localhost'; 

mysql_connect($db_host, $db_user, $db_pw); 
mysql_select_db($db_dbname);

$tabellenname = 'daten'; 
$id     = $_POST['id'];
$name   = $_POST['name'];
$C1     = $_POST['C1'];
$C2     = $_POST['C2'];
$C3     = $_POST['C3'];
$C4     = $_POST['C4'];
$C5     = $_POST['C5'];
$C6     = $_POST['C6'];
$C7     = $_POST['C7'];
$C8     = $_POST['C8'];
$C9     = $_POST['C9'];
$C10    = $_POST['C10'];
$C11    = $_POST['C11'];
$datum  = $_POST['datum'];

$sql = "Update daten SET C1= '".$C1."', 
                         C2= '".$C2."',  
                         C3= '".$C3."',
                         C4= '".$C4."',
                         C5= '".$C5."',
                         C6= '".$C6."',
                         C7= '".$C7."',
                         C8= '".$C8."',
                         C9= '".$C9."',
                         C10= '".$C10."',
                         C11= '".$C11."',
                         name= '".$name."',
                         datum= '".$datum."'
         WHERE `id` = '$id' LIMIT 1";


$sql = ("Select * FROM daten WHERE id ='" . $_GET['id'] . "';");
$q = mysql_query($sql);
$data = mysql_fetch_array($q);




                        
                         
?>
<form action="feedback.php" method="post">
<input type="hidden" name="id" value="<?php echo $data['id']; ?>">
<textarea name="name" rows="1" cols="105">
<?php echo $data['name']; ?>
</textarea >
<br>
<textarea name="C1" rows="1" cols="105">
<?php echo $data['C1']; ?>
</textarea>
<br>
<textarea name="C2" rows="1" cols="105">
<?php  echo $data['C2']; ?>
</textarea>
<br>
<textarea name="C3" rows="1" cols="105">
<?php echo $data['C3']; ?>
</textarea>
<br>
<textarea name="C4" rows="1" cols="105">
<?php echo $data['C4']; ?>
</textarea>
<br>
<textarea name="C5" rows="1" cols="105">
<?php echo $data['C5']; ?>
</textarea>
<br>
<textarea name="C6" rows="1" cols="105">
<?php echo $data['C6']; ?>
</textarea>
<br>
<textarea name="C7" rows="1" cols="105">
<?php echo $data['C7']; ?>
</textarea>
<br>
<textarea name="C8" rows="1" cols="105">
<?php echo $data['C8']; ?>
</textarea>
<br>
<textarea name="C9" rows="1" cols="105">
<?php echo $data['C9']; ?>
</textarea>
<br>
<textarea name="C10" rows="1" cols="105">
<?php echo $data['C10']; ?>
</textarea>
<br>
<textarea name="C11" rows="1" cols="105">
<?php echo $data['C11']; ?>
</textarea>
<br>
<textarea name="datum" rows="1" cols="105">
<?php echo $data['datum']; ?>
</textarea>
<br>
<input type="submit">
</form>
 
Hast du überhaupt in der Tabelle eine Spalte id?
Las dir die Sql befehle mit echo ausgeben dann siehste was er macht.

Und Zeig mal her wie Deine Tabellen aufbau ist.

Mfg Splasch
 
Zuletzt bearbeitet:
Sicher habe ich eine spalte mit id, aber irgend was mit id muss es ja schon zu tun haben da ich ja alles abgespeichert bekomme und,einfach ein neuer eintrag mit neuer id!

PHP:
                         C1= '".$C1."', 
                         C2= '".$C2."',  
                         C3= '".$C3."',
                         C4= '".$C4."',
                         C5= '".$C5."',
                         C6= '".$C6."',
                         C7= '".$C7."',
                         C8= '".$C8."',
                         C9= '".$C9."',
                         C10= '".$C10."',
                         C11= '".$C11."',
                         name= '".$name."',
                         datum= '".$datum."',
So wie hier sind auch meine Tabellen .
 
ich würd sagen es liegt an deinem Select
(Select * FROM daten WHERE id ='" . $_GET['id'] . "';"); )

Von wo holt er sich die Get id wenn die Abfrage dann keine Datensatz findet ist dann auch in deinem Formular die Id="" (leer) damit würde er wieder ein update machen wobei er alles ändert wo id="" ist also eben dann keine Änderung.

Bau besser noch eine Prüfroutine ein die Get id prüfft ob zahlen werte enthalten sind bwz ob überhaupt was drin steht.

Mfg Splasch
 
Zurück