2016-06-12 1 views
0

Ich habe eine Datenbank mit drei Spalten: ID, Benutzername, Feedback Ich möchte, dass der Feedback-Wert aktualisiert wird, wenn userName gleich ist .Werte in einer Zeile aktualisieren, wenn es in einer Spalte denselben Namen gibt (mit PHP in MySQL)

mein PHP-Code:

<?php 
conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
$value = $_POST['name']; 
$value2 = $_POST['message']; 
$sql = "INSERT INTO js (userName, feedback) VALUES('$value', '$value2'); 
if ($conn->query($sql) === TRUE) { 
echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
}; 

$conn->close(); 
?> 

Antwort

0

Wenn Sie es mit MySQL tun mögen, dass Sie zunächst einen eindeutigen Index für die userName Spalt definieren soll.

ALTER TABLE js 
ADD CONSTRAINT u_userName UNIQUE (userName) 

Die bearbeiten Ihre INSERT-Abfrage wie folgt aus:

INSERT INTO js (userName, feedback) VALUES ('$value', '$value2') 
    ON DUPLICATE KEY UPDATE feedback=VALUES(feedback); 

Wenn nun die doppelte Schlüsselverletzung von mysql getroffen wird, wird der Wert für die Rückkopplung während in der Zeile aktualisiert werden, in dem Ihr Benutzername entspricht.

Oder Sie implementieren eine Update-Logik in PHP und erkennen, ob es bereits einen Eintrag in der Tabelle mit dem gleichen Benutzernamen gibt.

Verwandte Themen