Ich bin extrem neu sowohl auf MySQL und PHP (meist mysql), und ich bin nicht einmal sicher, ich habe alle Grundlagen, denn ich bin eher ein Lern- durchgehende Person. Also mein Code besteht aus verschiedenen Erklärungen rund um das Internet, und einige davon könnten falsch sein. Also versuche ich Daten aus einer Datenbank zu bekommen, sie in ein HTML-Formular zu bringen, zu bearbeiten und die Datenbank mit den neuen Daten zu aktualisieren. Bis jetzt werden die Daten korrekt in das Formular geladen, und mit einer Menge Fehlersuche bin ich zu dem Schluss gekommen, dass auch der Upload so funktioniert wie er sollte, außer dass die Felder leer sind. Also denke ich, dass mein Problem darin bestehen muss, die Daten vom Formular zur Update-Abfrage zu bekommen.Laden von MySQL-Daten in ein HTML-Formular und updata mit PHP
Dies ist mein Code
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
</head>
<body>
<?php
require 'connect.php';
$result = $db->query("SELECT * FROM test") or die ($db->error);
while($row = mysqli_fetch_array($result))
{
$name = $row['name'];
$school = $row['school'];
$email = $row['email'];
$grade = $row['grade'];
$workshop = $row['workshop'];
$id = $row['id'];
?>
<form method="post" action="#">
<?=$id?>
<input name="nameid" type="text" value="<?=$name?>">
<input name="emailid" type="text" value="<?=$email?>">
<input name="gradeid" type="text" value="<?=$grade?>">
<input name="workshopid" type="text" value="<?=$workshop?>">
<input name="schoolid" type="text" value="<?=$school?>">
<?php }
session_start();
$_SESSION['storage'] = $_POST;
?>
<input name="update" type="submit" id="update" value="Update">
</form>
<?php
if(isset($_POST['update']))
{
$link = mysqli_connect("localhost", "892847", "123456789", "892847");
// Check connection
if($link === false){
die("Couldn't connect. " . mysqli_connect_error());
}
session_start();
$name = $_SESSION['storage']['nameid'];
$school = $_SESSION['school']['schoolid'];
$email = $_SESSION['email']['emailid'];
$grade = $_SESSION['grade']['gradeid'];
$workshop = $_SESSION['workshop']['grade'];
$id = $_SESSION['id'];
$sql = "UPDATE test SET name = '$name', email = '$email', school = '$school', grade = '$grade', workshop = '$workshop' WHERE id = '8'";
if(mysqli_query($link, $sql)){
echo "Records added successfully. $name";
print_r($_POST['nameid']);
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
mysqli_close($link);
}
?>
</body>
</html>
Ich bin mir bewusst, dass das Session-Chaos sieht seltsam aus, aber ich habe irgendwo gelesen, dass eine Information über PHP-Skripte nicht verfügbar ist, es sei denn, Sie eine Sitzung machen.
Ich bin wirklich dankbar für jede Art von Hilfe - ich habe für etwa 48 Stunden mit diesem gekämpft
Sie müssen Ihren Post in der Sitzung nicht beibehalten. Und Ihre Abfrage wird Ihnen mehr als eine Zeile geben. Da Sie nur eine Zeile benötigen, sollten Sie nur die Zeile '$ result = $ db-> query (" SELECT * FROM Test WHERE id = '$ id' ") oder die Option ($ db-> error) wählen;' I Nehmen wir an, Sie haben ein 'ID'-Feld in Ihrer Tabelle und Sie erhalten die' $ ID' der Zeile, die Sie aktualisieren möchten. – Orion
Entschuldigung, aber fast alles ist an der falschen Stelle in diesem Code. Ich schlage vor, Sie ändern Ihren Ansatz und beginnen mit einem guten Buch oder Tutorial – RiggsFolly
@RiggsFolly Ja, es ist irgendwie durcheinander. Aber weißt du, ich weiß, wie man sich verbindet, wie man die Daten holt und wie man hochlädt, also dachte ich, es wäre einfach, dieses Wissen zu kombinieren – Oliver