Datenbank bearbeiten

Big-A

Mitglied
Hallo liebe Forum-User,

ich bin bestimmt nicht die erste, die diese Frage stellt, jedoch hoffe ich das ich trotzdem eine Antwort erhalte, die mir weiterhilft ;-)

Also, ich bin ein absoluter programmier Anfänger.
Ich habe ein Problem: Ich habe eine Datenbank via mySQL (phpmyadmin) erstellt. Ich möchte diese Datenbank ohne immer in phpmyadmin gehen zu müssen bearbeiten können.
Ich habe es schon mehr oder weniger geschafft, neue Daten per Formular der Datenbank zu überliefern und auch zu löeschen. Nun hänge ich aber an dem Problem fest, das ich auch Daten bearbeiten möchte.

Ich habe 2 Formulare erstellt, bei dem einen sollen die ganzen Daten aus der Datenbank ausgelesen werden und bei dem einen soll man angeben, welche Daten man überhaupt bearbeiten möchte.
Das Problem ist, ich möchte das man die gewählten Daten per ID angibt.
Dabei ergibt sich das Problem, das ich nicht weiß, wie ich das machen soll.
Also ich weiß nicht wie ich sagen soll "bearbeite die ID..., schriebe die Daten in das Formular, wenn der Button speichern gedrückt wurde, dann Upload das ganze bei der bekannten ID..."

Ich hoffe ich habe mich "verständlich" ausgedrückt und mir kann jemand helfen.

Ich habe es versucht so zu lösen:
PHP:
<html>
<head>
 <link rel="stylesheet" type="text/css" href="Kunden.css"  />
 <title> Kundendaten </title>
</head>

<body>
<h1> Daten bearbeiten</h1>
<div id="links2">
 <br/>
 <br/>
 	<ol>
	 <h2>Funktionen</h2>
	 <ul><a href="Startseite.php"/>Kunden&uuml;bersicht</a></ul>
	 <ul><a href="FormNeu.php"/>Neuen Kunden anglegen</a></ul>
	 <ul><a href="loeschen.php"/>loeschen</a></ul>
	 <?php

echo "<div id='right'>";
 echo "<form method='post'>";	
  echo "<ol>";
   echo "<fieldset>";
	echo "<legend>Welchen Datensatz möchten Sie bearbeiten?</legend>";
		echo "<form method='bearbeiten'>";
		echo "<ul><p> ID: <input type='text' name='ID' size='25'/>  </p></ul>" ;
		echo "<br/><input type='submit' name='bearbeiten' value='bearbeiten'></input>"; //Button bearbeiten
   echo "</fieldset>";
  echo "</ol>";
 echo "</form>";
echo "</div>";
?>
	</ol>
</div>


<?php
      
if(isset($_POST["bearbeiten"])) //wenn Button-senden gedrückt,dann führe $_POST aus
	{/
	$ID = $_POST["ID"]; 
   //die("DELETE FROM Kundendaten WHERE ID = '" . $ID . "'");
    $berbeiten = mysql_query("LOAD FROM Kundendaten WHERE ID = '" . $ID . "'");
	mysql_query($bearbeiten);


} 

include("verbindung.php"); #öffnen der php-Datei, mit Verbindung zum Server
include("DatenTabelle.php");
include("Formular.php");

?>
		
</body>
</html>

Ich hoffe, das ich mich "verständlich" ausgedrückt habe und mir jemand helfen kann. :D
 
Zuletzt bearbeitet von einem Moderator:
Code:
UPDATE Kundendaten 
SET name='Markus Müller', email='markus.mueller@max.com', tel='000606232' 
WHERE id='".$ID."'

Das wäre eine MySql-Query, mit der du die Felder name, email und tel (für Telefon) änderst, von der ID mit der Variable ID!
 
@Lime
Anmerkung:
die ID wird hoffentlich eine Zahl sein. Dann sollte man sie auch als Zahl im SQL behandeln. Also die ' weglassen.
Denn: '1' <> 1
 
Hallo Lime,

danke für deine Antwort, jedoch möchte ich das ganze ja nicht über den Quellcode selber machen sondern eben über ein Formular.

Also ID auswählen, die man bearbeiten möchte, über ein eigenes Formular. Dann soll auf die Datenbank zugegriffen werden, damit die Daten von der gewünschten Spalte in einem weiteren Formular dargestellt werden.
Innerhalb des 2ten Formulars kann ich die Daten dann normal bearbeiten und speichern.

Ich weiß eben nicht, wie ich mir die Daten in dem Formular anzeigen lassen kann. Also das ich diese Verbindung aufbauen kann, das der die ID sucht und die zugehörigen Daten. :-(

LG Big-A
 
Sorry, aber:

Du findest 1000de Anleitungen wie man Daten mittels eines SELECT aus der DB auslesen kann.
Dann beim erstellen des Formulars kannst du die Wert mitgeben. Wie das funktioniert findest du mindestens auf selfhtml.

Die Kombination Formular-PHP-Datenbanken ist in zig Tutroials im WWW abgebildet.

Ich werde darum nicht noch einmal ein Tutorial dazu schreiben.

Bei Detail-Fragen helfe ich dann gerne wieder weiter

Nachtrag:
Googeln nach 'php tutorial edit form for mysql data'
2ter Treffer: http://www.phpeveryday.com/articles/PHP-MySQL-Editing-data-P284.html
 
Das sollte doch kein Problem sein!

Du liest die Daten auf normalem Weg aus der Datenbank aus:
Code:
SELECT * FROM Kundendaten WHERE id=".$id."

Dann füllst du die Daten in die entsprechenden Felder des Formulars!
PHP:
//Im folgenden Beispiel gehe ich von einer bestehenden MySQL-Verbindung aus.
$sqlCmd = "SELECT * FROM Kundendaten WHERE id=".$ID;
$sqlQry = mysql_query($sqlCmd, $sql);
while($row = mysql_fetch_object($sqlQry))
{
    echo "<form>";
        echo "<input type=\"text\" name=\"name\" value=\"".$row->name."\" />";
        echo "<input type=\"text\" name=\"email\" value=\"".$row->email."\" />";
        echo "<input type=\"submit\" name=\"submit\" value=\"speichern\" />";
    echo "</form>";
}

€: @Yaslaw:
Yaslaw hat gesagt.:
Ich werde darum nicht noch einmal ein Tutorial dazu schreiben.
Gut, dann gib doch wenigstens eine Hilfestellung... überleg mal, wenn du auf der anderen Seite der Leitung sitzen würdest. Da wär mir das Forum hier direkt unsympathisch. :)
 
Zuletzt bearbeitet:
Ich danke dir sehr Lime******
Ich hatte einen Denkfehler und deswegen hat es nicht funktioniert, aber danke, das du es mir gezeigt hast, ich dachte zuerst, das ich hier wohl doch keine Hilfe finde.

du hast das Forum "gerettet" ;-)

LG Big-A
 
@Lime
Recht hast du. Darum habe ich auch als Nachtrag einen Link gepostet und eine Beschreibung wo man dort ein Beispiel findet. Wenn das natürlich zuwenig ist, kann ich in Zukunft ja das Beispiel auch gleich ins Forum kopieren (nachdem ich dort angefragt haben ob ich das darf)

@Big-A
Je detailierter die Frage umso besser kann man helfen. Aber mit der einfachen Frage "Wie geht XY" und dazu gibts bereits zig Tutorials, kann man leider nur mit verweisen auf Tutroials oder neu schreiben eines Tutorials machen.
Wenn du aber schreibst: "Ich hab das und jenes Probiert und es kommt der Fehler 'ABC' und ich weiss nicht warum, hier ist mein Code" kann man dir sehr wohl geziehlt und fachmännisch helfen.
 
@Yaslaw
dann habe ich direkt noch eine Frage:

Ich hab es nun versucht etwas anders zu lösen, als wie das Beispiel von Lime.
Leider habe ich nun eine "endlos" Schleife daraus gemacht und mir werden "100%" angezeigt.
Ich habe ein while-schleife mir rein gemacht und ich glaube, das genau das das Problem ist, da er versucht die Daten immer und immer wieder zu laden. Mir werden Fehler über die gesamte Schleife angezeigt, aber ich verstehe nicht wieso :-(
PHP:
<?php
      
	    if(isset($_POST["bearbeiten"])) //wenn button"bearbeiten" gedrückt, dann
  {
    $query= mysql_query("SELECT * FROM `namederDatenbank` WHERE ID = '".$_POST["ID"]."'")or die(mysql_error()); //lade daten aus Datenbank die angegeben Id

	while($query)  //nimmt von $query die Daten mit der ID und gibt die Daten solange aus, bis alle geladen wurden
      {
        echo 'Vorname: <input type="text" value="'.$row->Firma.'" name=Firma" /><br />';
        echo 'Nachname: <input type="text" value="'.$row->Nachname.'" name="Nachname" /><br />';
        echo 'E-Mail: <input type="text" value="'.$row->Vorname.'" name="Vorname" /><br />';
		echo 'Vorname: <input type="text" value="'.$row->Strasse.'" name=Strasse" /><br />';
        echo 'Nachname: <input type="text" value="'.$row->Hausnummer.'" name="Hausnummer" /><br />';
        echo 'E-Mail: <input type="text" value="'.$row->PLZ.'" name="PLZ" /><br />';
		echo 'Nachname: <input type="text" value="'.$row->Ort.'" name="Ort" /><br />';
        echo 'E-Mail: <input type="text" value="'.$row->Telefonnummer.'" name="Telefonnummer" /><br />';
		echo 'Nachname: <input type="text" value="'.$row->Fax.'" name="Fax" /><br  />';
		echo 'Nachname: <input type="text" value="'.$row->Mail.'" name="Mail" /><br />';		
		echo 'Nachname: <input type="text" value="'.$row->Datum.'" name="Datum" /><br />';
        echo '<input type="submit" name="update" value="Speichern">';
      }
    
  }
 
?>
 
Jepp. deine while-Schleife ist falsch.
1) prüfst du auf $query. Das ist true, falls den mysql_query() ausgeführt werden konnte
2) Du solltest mysql_fetch_object() oder mysql_fetch_assoc() oder mysql_fetch_array() verwenden um $row zu kriegen. Im Beispiel von Lime ist das schön drin

PHP:
while($row = mysql_fetch_object($query)){
     //TODO Das Objekt $row ausweren (also deine echo's)
     echo 'Vorname: <input type="text" value="'.$row->Firma.'" name=Firma" /><br />'; 
}

Nochwas. Deine ID ist warscheinlich eine Zahl in der DB (ID ist im Normalfall immer eine Zahl).
Also im SQL ohne die ' verwenden.
SQL:
-- Im Falle einer Zehl falsch:
WHERE id = '15'
-- Richtig:
WHERE id = 15
 
Zuletzt bearbeitet von einem Moderator:
Zurück