gpt4 book ai didi

php - 通过 PHP 修复 MySQL 查询

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:20 25 4
gpt4 key购买 nike

我正在制作一个页面,根据 HTML 表单数据从数据库中插入/更新/删除。

UPDATE 而言,我不知道如何修复它。问题是,您可以更新任何您想要的内容(例如 nazwa_klubu,假设您已经更改了旧的 nazwa_klubu 并希望保留新名称(nazwa klubu = club name) 在数据库中,你在 Wprowadz zmiany 表单中输入你想要更改为 Nazwa klubu 的名称,然后在第二个 Nazwa klubu 您键入要更改的名称。

  • 我相信这是一个小升级,可以让它全部正常工作,而不必放入无数 if 案例,但这是我使用 PHP 的第三天,所以我很困惑。

编辑: 所以基本上,如果所有字段都已填写,则此功能可以正常工作。但我希望它能工作,即使我们填充了一些字段 - 好吧,我希望你明白我的意思。如果您甚至不能正确使用它,UPDATE 有什么意义?反问。

这就是它目前的工作方式:

UPDATE Koncerty SET nazwa_klubu = 'NewClubName', WHERE nazwa_klubu = 'OldClubName' AND

但显然我希望它像这样工作:

UPDATE Koncerty SET nazwa_klubu = 'NewClubName' WHERE nazwa_klubu = 'OldClubName'

无论输入多少,我都会填写此表单。前 5 个输入负责 SET 端,后五个输入在 WHERE 子句之后。

这是函数的代码

function update($table, $data)
{
$new_klub = 'nazwa_klubu = ' . '\'' . $data[data1] . '\',';
$new_adres = 'adres_klubu = ' . '\'' . $data[data2] . '\',';
$new_zespol = 'nazwa_zespolu = ' . '\'' . $data[data3] . '\',';
$new_ile = 'ilosc_czlonkow_zespolu = ' . '\'' . $data[data4] . '\',';
$new_wystep = 'data_wystepu = ' . '\'' . $data[data5] . '\',';
$klub = 'nazwa_klubu = ' . '\'' . $data[data6] . '\' AND';
$adres = 'adres_klubu = ' . '\'' . $data[data7] . '\' AND';
$zespol = 'nazwa_zespolu = ' . '\'' . $data[data8] . '\' AND';
$ile = 'ilosc_czlonkow_zespolu = ' . '\'' . $data[data9] . '\' AND';
$wystep = 'data_wystepu = ' . '\'' . $data[data10] . '\'';

if (empty($data[data1]) AND empty($data[data2]) AND
empty($data[data3]) AND empty($data[data4]) AND empty($data[data5])) {

echo '<span class="error">Zabezpieczenie: Musisz wpisac jakie zmiany chcesz wprowadzic</span>';
exit;
}

if (empty($data[data6]) AND empty($data[data7]) AND
empty($data[data8]) AND empty($data[data9]) AND empty($data[data10])) {

echo '<span class="error">Zabezpieczenie: Musisz wpisac na czym chcesz dokonac zmian</span>';
exit;
}

if (empty($data[data1])) {
$new_klub = '';
}
if (empty($data[data2])) {
$new_adres = '';
}
if (empty($data[data3])) {
$new_zespol = '';
}
if (empty($data[data4])) {
$new_ile = '';
}
if (empty($data[data5])) {
$new_wystep = '';
}

if (empty($data[data6])) {
$klub = '';
}
if (empty($data[data7])) {
$adres = '';
}
if (empty($data[data8])) {
$zespol = '';
}
if (empty($data[data9])) {
$ile = '';
}
if (empty($data[data10])) {
$wystep = '';
}

$safe_updates = "SET SQL_SAFE_UPDATES = 0";

$sql = "UPDATE $table SET
$new_klub
$new_adres
$new_zespol
$new_ile
$new_wystep
WHERE
$klub
$adres
$zespol
$ile
$wystep
";

echo $new_klub;

mysql_query($safe_updates);
$result = mysql_query($sql);
if (!$result) {
echo '<span class="error">' . mysql_error() . '</span><br>' . $sql . '';
}
else {
echo '<span class="success">Wprowadzono zmiany' . $sql . '</span><br>';
}

}

最佳答案

你不应该使用堆栈溢出,因为在某些地方会问“修复我的代码”之类的问题。

但是,您可以将所有的 $new_ 变量放入一个数组中

$new = array(
'klub' => 'nazwa_klubu = ' . '\'' . $data[data1] . '\',',
'adres' => 'adres_klubu = ' . '\'' . $data[data2] . '\',',
);

然后你可以内爆你的阵列

$sql = implode(', ', $new);

那么你就不会得到尾随逗号。然后对 AND 使用相同的逻辑,您的 SQL 看起来就没问题了。

关于php - 通过 PHP 修复 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21152752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com