2017-09-10 1 views
0

Sagen Sie, wenn ich einen Eingang mit einem eigenen Foto auswählen soll, und ich möchte den Text zu diesem Eingang hinzufügen. Wie würde ich das erreichen? Hier ist mein Versuch, dies zu tun:Eine Möglichkeit, die ID der ID des ausgewählten Eingabefeldes in der SQL-Abfrage abzugleichen?

$username = $_SESSION['username'];  
$db = mysqli_connect("localhost", "root", "", "pictures"); 
     $sql = "SELECT * FROM images WHERE username = '$username'"; 
     $result = mysqli_query($db, $sql); 
     $row = mysqli_fetch_array($result); 
     $id = $row['id']; 
     $send = $_POST['send']; 

if (isset($_POST['submit'])) { 
     $db = mysqli_connect("localhost", "root", "", "pictures"); 
     $sql = "UPDATE images SET send='$send' WHERE username='$username' AND id='$id'"; 
     mysqli_query($db, $sql); 
     header("Location: index"); 
    } else { 
    } 

HTML:

<form enctype="multipart/form-data" action="send_message" method="post"> 
<input name="send" placeholder="Send message" /> 
<button name="submit"></button> 
</form> 

Das Problem, das ich habe, ist, wenn ich tun Text hinzufügen, ist es nicht zu dem Bild geht die ich ausgewählt habe, sondern zu die erste, die der Abfrage entspricht.

Antwort

0

Sie müssen eine ID des Bildes senden, das Sie ändern möchten send Wert für. Sie können es in int umwandeln und vorbereitete Anweisungen verwenden und eine Datenbankzeile mit dieser ID zusammen mit dem Benutzer auswählen (wählen Sie nicht nur die ID aus, damit der Wert für das Bild, das der Benutzer ein Formular sendet, nicht geändert werden kann) Besitzer)

so sollte Ihre Form etwas wie folgt aussehen:

<form method="post"> 
    <input type="hidden" name="id" value="<?PHP echo $row['id']; ?>"/> 
    <input type="text" name="send" placeholder="Send message"/> 
    <button name="submit"></button> 
</form> 

Sie müssen also verstecktes Feld erstellen mit der ID des Telefons Sie neue send Wert festlegen möchten. Ich habe angenommen, dass Sie eine Zeile aus der Datenbank haben, deren ID als Wert des versteckten ID-Feldes eingefügt wird. Aber Sie können $_GET['id'] oder $_POST['id'] verwenden, wenn Sie Link/Schaltfläche erstellen, um Benutzer auf Seite umzuleiten, wo Sie ein Foto bearbeiten.

Sie könnten auch Wert der versteckten ID-Feld mit Javascript, indem Sie auf ein Foto klicken.

+0

Ich sehe, muss ich irgendetwas zu meiner Frage da oben tun? Ich könnte '$ _POST ['id']' verwenden, aber ich muss experimentieren, wenn es richtig in das richtige Bild eingefügt wird. –

+0

@HannahParks Ihre Update-Anfrage hat bereits eine ID, so dass nur Bilder mit der ID aktualisiert werden, und wenn ID der Primärschlüssel ist, dann wird es ein Bild mit dieser ID max geben, es kann eins sein oder keins, da Bild mit ID möglicherweise nicht existiert Es wird nicht viele Bilder mit derselben ID geben. Was Sie tun können, ist Ihre Anfragen vorzubereiten, um SQL-Injektionen zu vermeiden. Siehe http://php.net/manual/en/mysqli.prepare.php Es sendet Abfrage als Abfrage und Daten als Daten, so dass Daten nicht als Abfrage vom Server interpretiert werden. –

Verwandte Themen