-
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:
Ich hoffe, das ich mich "verständlich" ausgedrückt habe und mir jemand helfen kann.PHP-Code:<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ü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>
Geändert von Yaslaw (30.01.12 um 15:31 Uhr) Grund: PHP-Tags gesetzt
-
Code :
1 2 3
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---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
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/...data-P284.html---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Das sollte doch kein Problem sein!
Du liest die Daten auf normalem Weg aus der Datenbank aus:
Code :1
SELECT * FROM Kundendaten WHERE id=".$id."
Dann füllst du die Daten in die entsprechenden Felder des Formulars!
€: @Yaslaw:PHP-Code://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>";
}
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.
Zitat von Yaslaw
Geändert von Lime (30.01.12 um 15:58 Uhr)
-
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.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
@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-Code:<?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
Nochwas. Deine ID ist warscheinlich eine Zahl in der DB (ID ist im Normalfall immer eine Zahl).PHP-Code: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 />';
}
Also im SQL ohne die ' verwenden.
Code sql:1 2 3 4
-- Im Falle einer Zehl falsch: WHERE id = '15' -- Richtig: WHERE id = 15
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
01.02.12 10:22 #11
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
@Yaslaw: Gehört zwar nicht direkt zu diesem Beitrag aber ich Frage trotzdem.
Was ist so falsch daran wenn man die Zahl in einfache Anführungszeichen schreibt? Der Vergleich mit "=" klappt und auch wenn man "<" oder ">" nimmt, liefert die Abfrage das richtige Ergebnis.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
juhu es funktioniert******! DANKEEEEEEEEEEEEEE******
-
@Big-A
Bitte
@tombe
Jepp, MySQL ist da so brav und dies selbständig korrigiert. Das kann aber auch zu Fehler führen wenn beide Werte in ' stehen. Und wenn man sich angewöhnt auch Zahlen in ' zu schreiben, dann fällt man irgendwann rein. Darum gleich angewöhnen die Zahlen ohne ' zu schreiben.
Code sql:1 2 3 4 5
-- Das folgende liefert true. Es findet ein Cast vom String zur Zahl statt, da eines eine Zahl ist SELECT (2 < '12'); -- Das folgnede leifert false, da ein reiner Stringvergleich stattgefunden hat SELECT ('2' < '12');
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Ich habe noch mal eine Frage

das mit dem Formular hat funktioniert und alles. Nun wird mir aber ein Syntaxfehler 1064 angezeigt und ich finde meinen Fehler einfach nicht.
Ich hoffe, das mir noch mal geholfen werden kannPHP-Code:if(isset($_POST["speichern"])){
$Firma= $_POST["Firma"];
$Nachname = $_POST["Nachname"];
$Vorname = $_POST["Vorname"];
$Strasse = $_POST["Strasse"];
$Hausnummer = $_POST["Hausnummer"];
$PLZ = $_POST["PLZ"];
$Ort = $_POST["Ort"];
$Telefonnummer = $_POST["Telefonnummer"];
$Fax = $_POST["Fax"];
$Mail = $_POST["Mail"];
$Datum = $_POST["Datum"];
$eintrag = "UPDATE Kundendaten 'Firma', 'Nachname', 'Vorname', 'Strasse', 'Hausnummer', 'PLZ', 'Ort', 'Telefonnummer', 'Fax', 'Mail', 'Datum' SET ".$Firma.",".$Nachname.",".$Vorname.",".$Strasse.",".$Hausnummer.",".$PLZ.",".$Ort.",".$Telefonnummer.",".$Fax.",".$Mail.",".$Datum." -WHERE 'ID'= '".$ID."'";
echo $eintrag; die();
mysql_query($eintrag);
}
-
Die Syntax für eine Updatequery sieht so aus:
Code sql:1
UPDATE `Kundendaten` SET Firma='{$firma}', Nachname='{$nachname}' WHERE id={$id}
Ähnliche Themen
-
[ASP.net] Datenbank bearbeiten etc.
Von Alaitoc im Forum .NET Web und KommunikationAntworten: 6Letzter Beitrag: 04.01.08, 10:14 -
Daten aus Datenbank holen - bearbeiten Problem
Von Lektor21 im Forum PHPAntworten: 8Letzter Beitrag: 17.09.07, 22:39 -
Mit FCKEDITOR Html aus Datenbank holen und bearbeiten
Von psifactory im Forum PHPAntworten: 11Letzter Beitrag: 28.08.06, 15:04 -
SQL Datenbank bearbeiten
Von Preisl im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 21.04.05, 13:14 -
Daten aus einer Datenbank bearbeiten
Von ems im Forum ASPAntworten: 2Letzter Beitrag: 06.05.04, 00:00



4Danke

Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren