it-swarm.com.de

Aktualisieren Sie MySQL mit HTML-Formular und PHP

Ich habe hier Dutzende von Threads durchgesehen, habe aber noch keine Lösung gefunden.

Ich habe ein Formular erstellt, das den Inhalt der Datenbanktabelle in Eingabefeldern anzeigen soll. Wenn der Inhalt der Eingabefelder geändert und übermittelt wird, sollte die Datenbank aktualisiert werden.

<html>
<head>
</head>
<body>

<?php

$dbhost = '****';
$dbuser = '****';
$dbpass = '****';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
mysql_select_db('****');

$query = "SELECT * FROM anstalld";
$result = mysql_query($query) or die(mysql_error());

?>


<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>

<?php 

while($row = mysql_fetch_array($result))
            {

$namn = $row['namn'];
$mandag = $row['mandag'];
$tisdag = $row['tisdag'];
$onsdag = $row['onsdag'];
$torsdag = $row['torsdag'];
$fredag = $row['fredag'];
?>


<td width="100"></td>
<td><?=$namn?></td>
</tr>
<tr>
<td width="100">Mandag</td>
<td><input name="mandagid" type="text" value="<?=$mandag?>"></td>
</tr>
<tr>
<td width="100">Tisdag</td>
<td><input name="tisdagid" type="text" value="<?=$tisdag?>"></td>
</tr>
<tr>
<td width="100">Onsdag</td>
<td><input name="onsdagid" type="text" value="<?=$onsdag?>"></td>
</tr>
<tr>
<td width="100">Torsdag</td>
<td><input name="torsdagid" type="text" value="<?=$torsdag?>"></td>
</tr>
<tr>
<td width="100">Fredag</td>
<td><input name="fredagid" type="text" value="<?=$fredag?>"></td>
</tr>
<?php } ?>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="update" type="submit" id="update" value="Update">
</td>
</tr>
</table>
</form>



<?php

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

$namn = $_POST['namnid'];
$mandag = $_POST['mandagid'];
$tisdag = $_POST['tisdagid'];
$onsdag = $_POST['onsdagid'];
$torsdag = $_POST['torsdagid'];
$fredag = $_POST['fredagid'];

$sql = mysql_query("UPDATE anstalld SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn'");

$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";

}


?>
</body>
</html>

Die Formulare zeigen den Inhalt der Datenbank gut an, aber beim Aktualisieren erhalte ich folgende Meldung:

Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, dass entspricht Ihrer MySQL-Server-Version für die richtige Syntax für die Verwendung von in der Nähe von '1' in Zeile 1

Ich freue mich über jede Hilfe, die ich dabei bekommen kann. 

6
user2052849

Verwenden Sie mysqli anstelle von mysql, und Sie müssen den Datenbanknamen oder das Schema übergeben:

vor:

$conn = mysql_connect($dbhost, $dbuser, $dbpass);

nach dem:

$conn = mysql_connect($dbhost, $dbuser, $dbpass, $myDBname);
5

Die Aktualisierungsabfrage kann einige Probleme haben 

$query = "UPDATE anstalld SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn' ";
echo $query;

Stellen Sie sicher, dass Ihre Variable keine Werte mit qoutes (') hat. Möglicherweise bricht die Abfrage irgendwo. 

wiederholen Sie die Abfrage und versuchen Sie, sie in phpmyadmin selbst auszuführen. Dann können Sie die Probleme finden. 

2
Shafeeque

Ihre SQL ist falsch.

$sql = mysql_query("UPDATE anstalld....

nur

$sql = "UPDATE anstalld...
1
user3510431

Sie haben Ihre Abfrage hier bereits ausgeführt

$sql = mysql_query("UPDATE anstalld SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn'");

Also hat diese Zeile das Problem

$retval = mysql_query( $sql, $conn ); //$sql is not a query its a result set here

Versuchen Sie etwas so:

$sql = "UPDATE anstalld SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn'";    
$retval = mysql_query( $sql, $conn ); //execute your query

Als Nebenbemerkung: MySQL_ * -Erweiterung ist veraltet, verwenden Sie MySQLi_ * oder PDO stattdessen.

1
Konsole

Versuchen Sie es so. Setzen Sie den Tabellennamen in Anführungszeichen (``) . Neben put Variable '". $ Xyz." ".

Ihre SQL-Abfrage wird also wie folgt aussehen:

$sql = mysql_query("UPDATE `anstalld` SET mandag = "'.$mandag.'" WHERE namn =".$name)or die(mysql_error());
0
Nirav Patel

Ja, Sie haben einen Fehler in der SQL-Abfrage. Versuch es 

$sql = mysql_query("UPDATE `anstalld` SET mandag = "'.$mandag.'" WHERE namn =".$name)or die(mysql_error());

Ihre SQL-Aktualisierungsabfrage sollte korrekt sein.

0
Vishal Rana

Zuerst benutze mysqli_connect($dbhost,$dbuser,$dbpass,$dbname)

Zweitens - setzen mysqli_ überall statt mysql_

Drittens - verwenden Sie diese $sql = "UPDATE anstalld SET mandag = '.$mandag.', tisdag = '.$tisdag.', onsdag = '.$onsdag.', torsdag = '.$torsdag.', fredag = '.$fredag.' WHERE namn = '.$namn.'";
$retval = mysqli_query( $conn, $sql ); //execute your query

wenn Ihre Daten in Ihrer Datenbank, aber nicht in Ihrer Tabelle aktualisiert werden, wird die Anforderung an dieselbe Datei gesendet, wenn Sie auf die Schaltfläche "Aktualisieren" klicken. Es wählt zuerst die Daten aus der Datenbank aus, wenn sie nicht aktualisiert werden, druckt sie in die Tabelle und aktualisiert sie dann gemäß dem Ablauf. Wenn Sie es aktualisieren müssen, während Sie auf die Schaltfläche "Aktualisieren" klicken, fügen Sie diesen Abschnitt ein

<?php
if(isset($_POST['update']))
{

$namn = $_POST['namnid'];
$mandag = $_POST['mandagid'];
$tisdag = $_POST['tisdagid'];
$onsdag = $_POST['onsdagid'];
$torsdag = $_POST['torsdagid'];
$fredag = $_POST['fredagid'];

$sql = mysql_query("UPDATE anstalld SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn'");

$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";

}


?>`

nach dem Verbinden mit der Datenbank.

0
Neo

sie haben Fehler in Ihrer SQL-Syntax.

bitte benutzen Sie diese Abfrage und Kasse.

$query = mysql_query("UPDATE `anstalld` SET mandag = '$mandag', tisdag = '$tisdag', onsdag = '$onsdag', torsdag = '$torsdag', fredag = '$fredag' WHERE namn = '$namn' ");
0
hassan gul