Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » PHP MYSQL BEARBEITEN LÖSCHEN    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
Talito
Mitglied
Neuling


Dabei seit: 17.01.2020
Herkunft: keine Angabe
Posts: 4
     PHP MYSQL BEARBEITEN LÖSCHEN Zitat | Bearbeiten

Hallo Entschuldigung an alle!

Ich bräuchte dringend Hilfe von euch. Ich habe ein Formular in dem ich Daten eingebe und speichere, dies funktioniert soweit.
Ich kriege es nach verzweifeltem Probieren nicht hin, dass diese eingetragenen Daten die ich in der Datenbank speichere wieder in die einzelnen Feldwerte beim klicken des bearbeiten links auftauchen.



 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title> Eingabe Produktdaten </title>
</head>
<body>

<?php

    
#Datenbank verbinden
$connect = new mysqli ("localhost""root""""shop");
$connect->select_db("shop");


    
#Alle Daten aus produkt tabelle von shop als Abfrage ausgeben
$result $connect->query("SELECT * FROM produkte");

    
#Tabellenlayout
echo '<table style = "border-size: 1px; border-style: solid;">
<tr><th>Produktname</th><th>Beschreibung</th><th>Preis</th><th>Funktionen</th></tr>'
;

    
#Alle Daten werden als Datensätze einzeln ausgegeben
while ($obj $result->fetch_object()) 

    
#Ein Datensatz wird aufgeteilt in einzelnde Felder
{
  echo 
"<tr>";
  echo 
' <td>' $obj->name '</td>';
  echo 
' <td>' $obj->beschreibung '</td>';
  echo 
' <td>' str_replace("."",",  $obj->preis) . ' EUR</td>';
  
    
#2 Link Funktionen werden erstellt
  
echo ' <td><a href="produkdaten_formular.php?id=' $obj->id '">bearbeiten</a></td>';
  echo 
' <td><a href="produktdaten_formular.php?del=' $obj->id '">entfernen</a></td>';
  echo 
"</tr>";
}
echo 
"</table>";
 
?>

    <!-- Formular für die Erfassung -->
    <form action="produktdaten_formular.php" method="POST">
        <p>Neuen Datensatz erstellen</p>
        <p>Produktname: <input type="text" name="produktname" value></p>
        <p>Beschreibung: <textarea name="beschreibung" cols=40 rows=5>
        </textarea></p>
        <p>Preis: <input type= "number" name="preis" step="0.01" value></p>
        <input type="hidden" name="id" value>
        <input type="submit" name="speichern" value="Speichern"/>
    </form>

<?php 

    
#Datenbank Verbindung
$host="localhost";
$nutzer "root";
$passwort "";
$dbname "shop";
$cxn = new mysqli($host$nutzer$passwort$dbname)
or die (
"Keine Verbindung");



    
#Eingabefelder des Formulars als Variable definieren
$produktname $_POST['produktname'];
$beschreibung $_POST['beschreibung'];
$preis $_POST['preis'];


    
#Daten in die Datenbank schicken
if (isset($_POST['speichern']));

$query "INSERT INTO produkte(name, beschreibung, preis)
            VALUES ('
$produktname', '$beschreibung', '$preis')";
$resultat mysqli_query($cxn$query)
            or die (
"Keine Verbindung");
    

    
#Daten bearbeiten
    #...

#{
#    return ($obj->name . ;
#           $obj->beschreibung . ;
#          str_replace(".", ",",  $obj->preis);)
#}
?>



</body>
</html>





Post wurde schon 3x editiert, das letzte mal am 09.02.2020 um 14:27 von Talito
17.01.2020, 18:20 Profil | PM | E-Mail  
asdf
Mitglied
Guter User


Dabei seit: 26.10.2009
Herkunft: keine Angabe
Posts: 429
      Zitat | Bearbeiten

Ich bin mir nicht sicher ob ich dich richtig verstehe.

Versuchst du die Daten die bereits in der DB sind zu bearbeiten? Wenn, ja dann fehlt da noch der entsprechende SQL-Query dazu... (INSERT INTO, fügt neue Datensätze hinzu ändert aber keine bestehende Datensätze.)


PS: dürfte ich dich bitte in Zukunft den Quellcode zwischen [php] und [/php] zu Posten?


17.01.2020, 19:27 Profil | PM | E-Mail  
Talito
Mitglied
Neuling


Dabei seit: 17.01.2020
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Ja, ich versuche bereits vorhandene Daten die ins Formular eingetragen und in der Datenbank in der Tabelle Produkte abgespeichert wurden zu bearbeiten.
Ich wollte die abgespeicherten Daten, welche in der Tabelle Produkte über dem Formular ausgegeben wird, bearbeiten bzw. entfernen können.
Ich bekomme die Verlinkung von der Funktion "bearbeiten" nicht hin. Im Klartext will ich bei einem Artikel auf bearbeiten klicken und diese Daten werden mir wieder in den einzelnen Formularfeldern angezeigt (siehe angefügter Screenshot).

Danke im Voraus



Dateianhang:
 php.jpeg  (21 KB, 25 mal herruntergeladen)

17.01.2020, 19:47 Profil | PM | E-Mail  
BraveBart
Mitglied
Neuling


Dabei seit: 05.01.2020
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Hallo Talito

Ich würde dieses Problem in die Richtung lösen:

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:

<?php
    
// Prüfe link-Auswahl bearbeiten (<a href="produkdaten_formular.php?aktion=bearbeiten&id=' . $obj->id . '">bearbeiten</a>)
    
if (isset($_GET['aktion'] == 'bearbeiten') and isset($_GET['id'])) {
        
$id_einlesen    $_GET['id'];
        
        
$abfrage         "SELECT * FROM produkte WHERE id = '$id_einlesen'";
        
$result            mysqli_query($connect$abfrage);
                
        
// Datensatz in Variablen speichern
        
$dsatz             mysqli_fetch_assoc($result);
        
$id             $dsatz["id"];
        
$name            $dsatz["name"];
        
$beschreibung     $dsatz["beschreibung"];
        
$preis             $dsatz["preis"];
?>
        <!-- Formular für die Erfassung -->
        <form action="produktdaten_formular.php?aktion=speichern" method="POST">
            <p>Neuen Datensatz erstellen</p>
            <p>Produktname: <input type="text" name="produktname" value="<?php echo $name?>"></p>
            <p>Beschreibung: <textarea name="beschreibung" value="<?php echo $beschreibung?>" cols=40 rows=5></textarea></p>
            <p>Preis: <input type= "number" name="preis" step="0.01" value="<?php echo $preis?>"></p>
            <input type="hidden" name="id" value="<?php echo $id?>">
            <input type="submit" name="speichern" value="Speichern"/>
        </form>
<?php
    
}
    
    if (isset(
$_GET['aktion'] == 'speichern') and (isset($_POST["speichern"])) {
        
$id             $_POST["id"];
        
$name             $_POST["name"];
        
$beschreibung     $_POST["beshcreibung"];
        
$preis             $_POST["erscheinungsjahr"];

        
//String für Update-Anweisung erstellen
        
$update "UPDATE produkte SET name ='$name', beschreibung ='$beschreibung', preis ='$preis' WHERE id = $id";
        
//MySQL-Anweisung ausführen
        
mysqli_query($connect$update);

        echo 
"Datensatz bearbeitet.<br>";
    }


Es wurde nicht getestet .. aber ich hoffe es hilft dir zu verstehen wie es gemeint ist

Lg


17.01.2020, 22:00 Profil | PM | E-Mail  
Talito
Mitglied
Neuling


Dabei seit: 17.01.2020
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Danke BraveBart!!

Ich hab deinen Code in mein Script eingefügt und ein bisschen dran rumgebastelt, aber leider funktionieren meine Funktion nicht. Vielleicht könntest du kurz jemand drüber schauen, ich habe einige kleine Fehler semikolon usw gefunden aber ich habe das Gefühl das in dem Script unendlich viele Fehler sind.
Hier das Script:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title> Eingabe Produktdaten </title>
</head>
<body>

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:


<?php

    
#Datenbank verbinden
$connect = new mysqli ("localhost""root""""shop");
$connect->select_db("shop");


    
#Alle Daten aus produkt tabelle von shop als Abfrage ausgeben
$results $connect->query("SELECT * FROM produkte");

    
#Tabellenlayout
echo '<table style = "border-size: 1px; border-style: solid;">
<tr><th>Produktname</th><th>Beschreibung</th><th>Preis</th><th>Funktionen</th></tr>'
;

    
#Alle Daten werden als Datensätze einzeln ausgegeben
while ($obj $results->fetch_object()) 

    
#Ein Datensatz wird aufgeteilt in einzelnde Felder
{
  echo 
"<tr>";
  echo 
' <td>' $obj->name '</td>';
  echo 
' <td>' $obj->beschreibung '</td>';
  echo 
' <td>' str_replace("."",",  $obj->preis) . ' EUR</td>';
  
    
#2 Link Funktionen werden erstellt
  
echo ' <td><a href="produktdaten_formular.php?id=' $obj->id '">bearbeiten</a></td>';
  echo 
' <td><a href="produktdaten_formular.php?del=' $obj->id '">entfernen</a></td>';
  echo 
"</tr>";
}
echo 
"</table>";

?>
    <!-- # Formular zur Datenarfassung -->

        <form action="produktdaten_formular.php" method="POST">
            <p>Neuen Datensatz erstellen</p>
            <p>Produktname: <input type="text" name="produktname" value="<?php echo $produktname?>"></p>
            <p>Beschreibung: <textarea name="beschreibung" value="<?php echo $beschreibung?>" cols=40 rows=5></textarea></p>
            <p>Preis: <input type= "number" name="preis" step="0.01" value="<?php echo $preis?>"></p>
            <input type="hidden" name="id" value="<?php echo $id?>">
            <input type="submit" name="speichern" value="Speichern"/>
        </form>



<?php 
    
#Datenbankverbindung
$host="localhost";
$nutzer "root";
$passwort "";
$dbname "shop";
$cxn = new mysqli($host$nutzer$passwort$dbname)
or die (
"Keine Verbindung");

        



    
#Wenn Speichern geklickt wird, dann füge die Daten in die Datenbank ein
if (isset($_POST['speichern']))
{
    
#Daten aus dem Formular in Variablen definieren
$name $_POST['produktname'];
$beschreibung $_POST['beschreibung'];
$preis $_POST['preis'];    

$query "INSERT INTO produkte(name, beschreibung, preis)
            VALUES ('
$name', '$beschreibung', '$preis')";
$resultat mysqli_query($connect$query)
            or die (
"Keine Verbindung");
}
?>


<?php
    
#Prüfe link-Auswahl bearbeiten (<a href="produkdaten_formular.php?aktion=bearbeiten&id=' . $obj->id . '">bearbeiten</a>)
    
if (isset($_GET['aktion']) == 'bearbeiten' and isset($_GET['id'])) 
    { 
    
$id_einlesen $_GET['id'];
        
        
$abfrage "SELECT * FROM produkte WHERE id = '$id_einlesen'";
        
$results mysqli_query($cxn$abfrage);
           
        
#Daten aus einzelnen Datensatz in Variablen speichern
        
$dsatz             mysqli_fetch_assoc($results);
        
$id             $dsatz["id"];
        
$name            $dsatz["name"];
        
$beschreibung     $dsatz["beschreibung"];
        
$preis             $dsatz["preis"];
    
?>

<?php
    
    
}
    if (isset(
$_GET['aktion']) == 'speichern' and (isset($_POST["speichern"])))
    {
        
$id $_POST["id"];
        
$name $_POST["name"];
        
$beschreibung $_POST["beschreibung"];
        
$preis $_POST["preis"];
    
        
//String für Update-Anweisung erstellen
        
$update "UPDATE produkte SET name ='$name', beschreibung ='$beschreibung', preis ='$preis' WHERE id = '$id'";
        
//MySQL-Anweisung ausführen
        
mysqli_query($connect$update);
    
        echo 
"Datensatz bearbeitet.<br>";
    }
    else
?>
<?php
    
if (isset($_GET['aktion']) == 'entfernen' and isset($_GET['id'])) {
        
$id_loeschen $_GET['id'];
        
        
$abfrage1 "DELETE FROM produkte WHERE id = '$id_loeschen'";
        
$results mysqli_query($cxn$abfrage1);
                
        
// Datensatz in Variablen speichern
        
$dsatz             mysqli_fetch_assoc($results);
        
$id             $dsatz["id"];
        
$name            $dsatz["name"];
        
$beschreibung     $dsatz["beschreibung"];
        
$preis             $dsatz["preis"];
    
?>
<?php
    
    
}
    if (isset(
$_GET['aktion']) == 'entfernen' and (isset($_POST["speichern"])))
    {
        
$id $_POST["id"];
        
$name $_POST["name"];
        
$beschreibung $_POST["beschreibung"];
        
$preis $_POST["preis"];
    
        
//String für Update-Anweisung erstellen
        
$delete "DELETE produkte SET name ='$name', beschreibung ='$beschreibung', preis ='$preis' WHERE id = '$id'";
        
//MySQL-Anweisung ausführen
        
mysqli_query($cxn$delete);
    
        echo 
"Datensatz bearbeitet.<br>";
    }
    
?>


</body>
</html>






Ich danke schon mal im voraus, dass ihr euch das überhaupt durch lesen tut und eure Zeit darin investiert


20.01.2020, 14:40 Profil | PM | E-Mail  
BraveBart
Mitglied
Neuling


Dabei seit: 05.01.2020
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Hey

Schreib mal was für eine Fehlermeldung kommt.
Dann seh ich mit kurz drüber schauen das du deinen Link falsch hast also mit ?id= und da kannst du nix aufrufen weil du unten das "script" aufrufst mit "aktion=bearbeiten&id=" ... du musst den link so nehmen wie ich ihn dir in der Anmerkung geschrieben habe.

Lg


22.01.2020, 23:04 Profil | PM | E-Mail  
Htaccess
Mitglied
Sehr guter User


Dabei seit: 22.08.2010
Herkunft: Deutschland
Posts: 716
      Zitat | Bearbeiten

Guten Abend Talito,

der Fehler liegt darin, dass nicht nur deine Links falsch aufgebaut sind, sondern auch in den Zeilen 79, 98, 114 und 131 hast du deine if-Bedingungen falsch aufgebaut. Die Funktion isset() gibt nämlich nur einen booleschen Wert (true or false) zurück. Dein Code muss folgendermaßen aussehen (Redundanten Code entfernt):

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
<?php

/* Verbindung zur Datenbank aufbauen */
$mysqli = new mysqli("localhost""root""""shop");

/* Verbindung überprüfen */
if ($mysqli->connect_errno) {
    
printf("Verbindung fehlgeschlagen: %s\n"$mysqli->connect_error);
    exit;
}

if (
$_GET["aktion"] == "entfernen" && isset($_GET["id"])) {
    
/* Wird das Produkt entfernt? */
    
$sql "DELETE FROM produkte WHERE id = '{$_GET['id']}'";
    
    if (
$mysqli->query($sql)) {
        echo 
"Das Produkt wurde erfolgreich entfernt.";
    }
}

/* Wenn eine id vorhanden ist, dann das Produkt auslesen */
if (isset($_GET["id"])) {
    
$produkt $mysqli->query("SELECT * FROM produkte WHERE id = '{$_GET['id']}'");
}

$produktname $_POST["name"] ?? $produkt->name;
$beschreibung $_POST["beschreibung"] ?? $produkt->beschreibung;
$preis $_POST["preis"] ?? $produkt->preis;

if (isset(
$_POST["speichern"])) {
    if (
$_GET["aktion"] == "bearbeiten" && isset($_GET["id"])) {
        
/* Wird das Produkt bearbeitet? */
        
$sql "UPDATE produkte SET name = '{$produktname}', beschreibung = '{$beschreibung}', preis = '{$preis}' WHERE id = '{$_GET['id']}'";
    } else {
        
/* Wird ein neues Produkt hinzugefügt? */
        
$sql "INSERT INTO produkte(name, beschreibung, preis) VALUES ('{$produktname}', '{$beschreibung}', '{$preis}')";
    }

    if (
$mysqli->query($sql)) {
        echo 
"Das Produkt {$produktname} wurde erfolgreich hinzugefügt/bearbeitet.";
    }
}

$theadings "<tr><th>Produktname</th><th>Beschreibung</th><th>Preis</th><th cols=\"2\">Funktionen</th></tr>";

echo 
"<table style=\"border-size:1px;border-style:solid;\"><thead>{$theadings}</thead><tfoot>{$theadings}</tfoot>";

if (
$results $mysqli->query("SELECT * FROM produkte")) {
    
$format "<tr><td>%s</td><td>%s</td><td>%01.2f EUR</td><td><a href=\"produktdaten_formular.php?aktion=bearbeiten&id=%s\">bearbeiten</a></td><td><a href=\"produktdaten_formular.php?aktion=entfernen&id=%s\">entfernen</a></td></tr>";
    echo 
"<tbody>";
    foreach (
$results as $result)
    {
        echo 
sprintf($format$result->name$result->beschreibung$result->preis$result->id$result->id);
    }
    echo 
"</tbody>";
}

echo 
"</table>";

$mysqli->close();

?>

<form action="produktdaten_formular.php?<?php echo $_SERVER["QUERY_STRING"]; ?>" method="POST">
    <p>Datensatz erstellen/bearbeiten</p>
    <p>Produktname: <input type="text" name="produktname" value="<?php echo $produktname?>"></p>
    <p>Beschreibung: <textarea name="beschreibung" cols=40 rows="5"><?php echo $beschreibung?></textarea></p>
    <p>Preis: <input type= "number" name="preis" step="0.01" value="<?php echo $preis?>"></p>
    <input type="submit" name="speichern" value="Speichern">
</form>


Für weitere Fragen kannst du gerne Fragen.

Gruß
Htaccess




Post wurde schon 2x editiert, das letzte mal am 24.01.2020 um 07:13 von Htaccess
24.01.2020, 01:14 Profil | PM | E-Mail  
Talito
Mitglied
Neuling


Dabei seit: 17.01.2020
Herkunft: keine Angabe
Posts: 4
      Zitat | Bearbeiten

Hallo BraveBart und Htaccess,

ich wollte mich bei euch für eure Hilfe bedanken. Das hat mir aufjedenfall weitergeholfen
Sorry für die späte Rückmeldung


09.02.2020, 14:29 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » PHP MYSQL BEARBEITEN LÖSCHEN   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz