2017-07-07 3 views
-1

So habe ich ein Telefonbuch mit einigen Funktionen bekommen. Ich möchte eine Zeile mit einem bestimmten Formular aktualisieren.PHP MySQL Update Tabelle Set ....?

Ich weiß, Sie schreiben:

INSERT INTO table (a,b,c) values('$a',....) 

Aber wie können Sie das tun, mit UPDATE?

so habe ich versucht, es wie folgt aus:

$sql = "UPDATE Adressbuch SET (Anrede, Nachname, Vorname,Geburtsdatum, Telefonnummer, Email) VALUES ('$Anrede','$Nachname','$Vorname','$Geburtsdatum','$Telefonnummer','$Email')"; 

Aber seine nicht funktioniert. es gibt mir den Fehler, wenn ich auf Bearbeiten klicke:

Sie haben einen Fehler in Ihrer SQL-Syntax; das Handbuch, dass zu Ihrer MySQL-Server-Version entspricht, die für die richtige Syntax in der Nähe zu verwenden '(Anrede, Nachname, Vorname, Geburtsdatum, Telefonnummer, E-Mail) WHERE (' blabla ' 'blabla',' at line 1

Mein Code:

<?php 
//if(isset($...) ? 
if($_GET['aktion'] == "speichern") 
{  
    $Anrede   = $_GET['Anrede']; 
    $Nachname  = $_GET['Nachname']; 
    $Vorname  = $_GET['Vorname']; 
    $Geburtsdatum = $_GET['Geburtsdatum']; 
    $Telefonnummer = $_GET['Telefonnummer']; 
    $Email   = $_GET['Email']; 


    $sql = "UPDATE Adressbuch SET (Anrede, Nachname, Vorname,  Geburtsdatum, Telefonnummer, Email) WHERE  ('$Anrede','$Nachname','$Vorname','$Geburtsdatum','$Telefonnummer','$Emai l')"; 

    echo '<a href="adressbuch-abfragen.php">Zurueck zum  Adressbuch</a><br>'; 
    require_once ('konfiguration.php'); 
    $db_erg = mysqli_query($db_con, $sql) 
     or die("Anfrage fehlgeschlagen: " . mysqli_error($db_con)); 

      exit; 
} 

Und dann einige HTML-Code der Formel anzuzeigen:

<html> 
<body> 
<br> 
<a href="adressbuch-abfragen.php">Zurueck zum Adressbuch</a><br> 
    <br/><br/> 

    <form name="" method="" action="adresse-bearbeiten.php"> 
    <p>Anrede/Titel:<br> 
    <input type="text" name="Anrede" value="" size="60"> 
    </p> 

    <p>Nachname:<br> 
    <input type="text" name="Nachname" value="" size="60"> 
    </p> 

    <p>Vorname:<br> 
    <input type="text" name="Vorname" value="" size="60"> 
    </p> 



    <p>Geburtsdatum:<br> 
    <input type="date" name="Geburtsdatum" value="" size="10"> 
    </p> 

    <p>Telefonnummer:<br> 
    <input type="text" name="Telefonnummer" value="" size="60"> 
    </p> 

    <p>E-Mail:<br> 
    <input type="text" name="Email" value="" size="60"> 
    </p> 
    <input type="hidden" name="aktion" value="speichern"> 

    <input type="submit" name="bearbeiten" value="bearbeiten"> 
    </form> 

</body> 
</html> 
+0

update t setzen c1 = val, c2 = val usw. – jarlh

+0

Gefällt mir das? UPDATE Adressbuch SET Anrede = '$ Anrede', Nachname ...... – cyxcat

+0

Ja, einfach so. Wahrscheinlich möchten Sie am Ende ein WHERE, um nicht alle Zeilen zu aktualisieren. (Oder machst du Update, wo aktuelle Cursor?) – jarlh

Antwort

0

das ist gemeinsames Format für die Aktualisierung mysq l

UPDATE table_name 
SET column1 = value1, column2 = value2, ... 
WHERE condition; 

Update Ihre Abfrage wie

$sql = "UPDATE Adressbuch SET Anrede='$Anrede', Nachname='$Nachname', Vorname='$Vorname',Geburtsdatum='$Geburtsdatum', Telefonnummer='$Telefonnummer', Email='$Email'"; 

und wenn Sie möchten, dann bestimmte Zeile aktualisieren Bedingung

so etwas wie dieses verwenden, wo id Tisch Primärschlüssel und 1 Ihre ID-Wert ist so aktualisieren Sie als Ihre Anforderung

$sql = "UPDATE Adressbuch SET Anrede='$Anrede', Nachname='$Nachname', Vorname='$Vorname',Geburtsdatum='$Geburtsdatum', Telefonnummer='$Telefonnummer', Email='$Email' where id =1"; 

wenn Sie mit anderen Bedingungen th aktualisieren möchten en

// dies Bedingung können Sie

$sql = "UPDATE Adressbuch SET Anrede='$Anrede', Nachname='$Nachname', Vorname='$Vorname',Geburtsdatum='$Geburtsdatum', Telefonnummer='$Telefonnummer', Email='$Email' where email = 'oldemail' and name='test'"; 

für weitere Informationen

https://www.w3schools.com/sql/sql_update.asp

+0

Art der Arbeit, habe das Problem, dass jetzt, wenn ich wie 2 + Zeilen, wenn ich eine Zeile bearbeiten möchte, jede Zeile geändert wird, was ich beim Bearbeiten schrieb. – cyxcat

+0

Also verwenden Sie, wo Bedingung, wenn Sie bestimmte Zeile –

+0

aktualisieren möchten siehe meine Update-Antwort –

0

prüfen verwenden:

"UPDATE Adressbuch SET Anrede = '$Anrede', Nachname = '$Nachname’, Vorname = '$Vorname’,Geburtsdatum = ‘$Geburtsdatum', Telefonnummer = ‘$Telefonnummer', Email = ‘$Email'" 

Aber denken Sie daran, wenn Sie dies nicht tun where-Klausel, die alle Datensätze in Ihrer Tabelle aktualisiert.

+0

wo setzen Sie die WHERE-Klausel in diesem? :/ – cyxcat

+0

am Ende so (falls du zB ID hast): "UPDATE Adressbuch SET Anrede = '$ Anrede', Nachname = '$ Nachname', Vorname = '$ Vorname', Geburtsdatum = '$ Geburtsdatum' , Telefonnummer = '$ Telefonnummer', Email = '$ Email' wo ID = '$ ID' " –

+0

funktioniert nicht, wenn ich es so mache, dass es nichts macht, keine einzelnen Zeilen und nicht alle Zeilen. – cyxcat