it-swarm.com.de

Abfrage aktualisieren PHP MySQL

Kann mir jemand helfen zu verstehen, warum diese Aktualisierungsabfrage die Felder in meiner Datenbank nicht aktualisiert? Ich habe dies in meiner PHP-Seite, um die aktuellen Werte aus der Datenbank abzurufen:

<?php

  $query = mysql_query ("SELECT * FROM blogEntry WHERE username = 'bobjones' ORDER BY id DESC");

  while ($row = mysql_fetch_array ($query)) 
  {
      $id = $row['id']; 
      $username = $row['username'];
      $title = $row['title'];
      $date = $row['date'];
      $category = $row['category'];
      $content = $row['content'];


    ?>

Hier mein HTML-Formular:

<form method="post" action="editblogscript.php">
ID: <input type="text" name="id" value="<?php echo $id; ?>" /><br />
Username: <input type="text" name="username" value="<?php echo $_SESSION['username']; ?>" /><br />
Title: <input type="text" name="udtitle" value="<?php echo $title; ?>"/><br />
Date: <input type="text" name="date" value="<?php echo $date; ?>"/><br />
Message: <textarea name = "udcontent" cols="45" rows="5"><?php echo $content; ?></textarea><br />
<input type= "submit" name = "edit" value="Edit!">
</form>

und hier ist mein 'editblogscript':

<?php

mysql_connect ("localhost", "root", "");
mysql_select_db("blogass");

if (isset($_POST['edit'])) {

    $id = $_POST['id'];
    $udtitle = $_POST['udtitle'];
    $udcontent = $_POST['udcontent'];


    mysql_query("UPDATE blogEntry SET content = $udcontent, title = $udtitle WHERE id = $id");
}

header( 'Location: index.php' ) ;





?>

Ich verstehe nicht, warum es nicht funktioniert.

17
user1123557

Sie müssen in Ihren Abfragen einfache Anführungszeichen für jeden VARCHAR-Inhalt haben. Ihre Aktualisierungsabfrage sollte also lauten:

mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = $id");

Es ist auch nicht geeignet, Ihre Datenbank direkt mit dem Inhalt eines POST zu aktualisieren. Sie sollten Ihre eingehenden Daten mit der Funktion mysql_real_escape_string desinfizieren.

19
davidethell

Ohne zu wissen, was der tatsächliche Fehler ist, den Sie erhalten, würde ich vermuten, dass es Anführungszeichen gibt. Versuche Folgendes:

mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = '$id'")
6
MrKiane

Hier habe ich zwei Variablen und aktuelles Datum und Uhrzeit aktualisiert

$ id = "1";
$ title = "phpmyadmin"; 

 $sql=  mysql_query("UPDATE table_name SET id ='".$id."', title = '".$title."',now() WHERE id = '".$id."' ");

now () Funktion aktualisiert aktuelles Datum und Uhrzeit.

note: For update query we have define the particular id otherwise it update whole table defaulty
4
sudhakar

Sie müssen ein Angebot hinzufügen, um den Punktoperator verwenden zu können:

mysql_query("UPDATE blogEntry SET content = '".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."'");
4

Zuerst sollten Sie "nicht funktionieren" definieren.
Zweitens gehe ich davon aus, dass Ihr Tabellenfeld 'content' varchar/text ist, Sie müssen es also in Anführungszeichen setzen. content = '{$content}'
Und zu guter Letzt: Verwenden Sie echo mysql_error() direkt nach einer Abfrage zum Debuggen.

2
pduersteler

Ich würde vermuten, dass Zitate fehlen. Versuchen Sie Folgendes: Ich hoffe, dass es richtig funktioniert

$ sql = mysql_query ("UPDATE table_name SET id = '". $ u_id. "', name = '". $ u_name. "', now () WHERE id = '". $ u_id. ""); //Zeilenumbruch

1
Muhammad Anees

sie müssen einfache Anführungszeichen schreiben, dann doppelte Anführungszeichen und dann vor dem Namen des Feldes und danach

mysql_query("UPDATE blogEntry SET content ='".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."' ");
0
fefe

Aktualisieren Sie eine Zeile oder Spalte einer Tabelle

$update = "UPDATE daily_patients SET queue_status = 'pending' WHERE doctor_id = $room_no and serial_number= $serial_num";

if ($con->query($update) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $con->error;
}
0
A.A Noman
<?php
require 'db_config.php';


  $id  = $_POST["id"];
  $post = $_POST;

  $sql = "UPDATE items SET title = '".$post['title']."'

    ,description = '".$post['description']."' 

    WHERE id = '".$id."'";

  $result = $mysqli->query($sql);


  $sql = "SELECT * FROM items WHERE id = '".$id."'"; 

  $result = $mysqli->query($sql);

  $data = $result->fetch_assoc();


echo json_encode($data);
?>
0
user9232865

Versuchen Sie es in der SQL-Abfrage so: Es wird gut funktionieren.

$sql="UPDATE create_test set url= '$_POST[url]' WHERE test_name='$test_name';";

Wenn Sie mehrere Spalten aktualisieren müssen, verwenden Sie __.

$sql="UPDATE create_test set `url`= '$_POST[url]',`platform`='$_POST[platform]' WHERE test_name='$test_name';";
0
Vidya