PHP MySQL只更新一个单元格,而不是整行
因此,我有一个表,有一行,点击“bearbeiten”,我得到一个公式,我可以填写更改的名称或任何内容,然后所有内容都会更改,而不仅仅是我在其中写入的字段,其余的都会保留 因此,如果我只更改名称并单击save,表中的所有其他字段都将变为空白 我已经在WHERE上试过了,读到这篇文章是一个很好的方法,但是我认为我可以通过在$sql语句中做一些更改来改变它,只是不知道是什么PHP MySQL只更新一个单元格,而不是整行,php,mysql,sql,Php,Mysql,Sql,因此,我有一个表,有一行,点击“bearbeiten”,我得到一个公式,我可以填写更改的名称或任何内容,然后所有内容都会更改,而不仅仅是我在其中写入的字段,其余的都会保留 因此,如果我只更改名称并单击save,表中的所有其他字段都将变为空白 我已经在WHERE上试过了,读到这篇文章是一个很好的方法,但是我认为我可以通过在$sql语句中做一些更改来改变它,只是不知道是什么 <?php //if(isset($...) if($_GET['aktion'] == "speichern") {
<?php
//if(isset($...)
if($_GET['aktion'] == "speichern")
{
$ID = $_GET['ID'];
$Anrede = $_GET['Anrede'];
$Nachname = $_GET['Nachname'];
$Vorname = $_GET['Vorname'];
$Geburtsdatum = $_GET['Geburtsdatum'];
$Telefonnummer = $_GET['Telefonnummer'];
$Email = $_GET['Email'];
$sql = "UPDATE Adressbuch SET Anrede = '$Anrede', Nachname = '$Nachname',Vorname = '$Vorname', Geburtsdatum = '$Geburtsdatum', Telefonnummer = '$Telefonnummer', Email = '$Email' ORDER BY ID DESC LIMIT 1";
echo '<a href="adressbuch-abfragen">Zurueck zum Adressbuch</a><br>';
require_once ('konfiguration.php');
$db_erg = mysqli_query($db_con, $sql)
or die("Anfrage fehlgeschlagen: " . mysqli_error($db_con));
exit;
}
怎么样:
如果变量不是空的,只需更新列,否则就用记录已有的值更新它
UPDATE Adressbuch
SET Anrede = CASE WHEN '$Anrede' != '' THEN '$Anrede' ELSE Anrede END
,Nachname = CASE WHEN '$Nachname' != '' THEN '$Nachname' ELSE Nachname END
,Vorname = CASE WHEN '$Vorname' != '' THEN '$Vorname' ELSE Vorname END
,Geburtsdatum = CASE WHEN '$Geburtsdatum' != '' THEN '$Geburtsdatum' ELSE Geburtsdatum END
,Telefonnummer = CASE WHEN '$Telefonnummer' != '' THEN '$Telefonnummer' ELSE Telefonnummer END
,Email = CASE WHEN '$Email' != '' THEN '$Email' ELSE Email END
ORDER BY ID DESC LIMIT 1
使用as并查看它是否有效。谢谢
<?php
require_once ('konfiguration.php');
//if(isset($...)
if($_GET['aktion'] == "speichern")
{
$ID = $_GET['ID'];
$Anrede = $_GET['Anrede'];
$Nachname = $_GET['Nachname'];
$Vorname = $_GET['Vorname'];
$Geburtsdatum = $_GET['Geburtsdatum'];
$Telefonnummer = $_GET['Telefonnummer'];
$Email = $_GET['Email'];
//use where in your query to update the particular row
//in below query id = your column in database table
$sql = "UPDATE Adressbuch SET Anrede = '$Anrede', Nachname = '$Nachname',Vorname = '$Vorname', Geburtsdatum = '$Geburtsdatum', Telefonnummer = '$Telefonnummer', Email = '$Email' WHERE id='$ID'";
$db_erg = mysqli_query($db_con, $sql) or die("Anfrage fehlgeschlagen: " . mysqli_error($db_con));
echo '<a href="adressbuch-abfragen">Zurueck zum Adressbuch</a><br>';
exit;
}
?>
我喜欢那些德语postsignore the echo和我的变量名x)不是调用页面时填充的字段吗?因此,如果您想更改条目,很可能数据库中已有数据。为什么不输出它们并填充字段?当您保存它们时,除了所做的更改外,所有内容都保持不变。@EstebanP。什么不是莱希特;Pi也试过这样做,但不知怎么的没有成功。这个很好用,谢谢!我仍然希望公式中已经填入我选择的行,然后只更改已经设置的数据,但这在我考虑这样做的时候是有效的^^