MySQL UPDATE с AJAX и PHP не работает в одном из двух случаев
Я пытаюсь обновить таблицу mysql с помощью сценария AJAX и php, но я все еще получаю сообщение "304 Не изменено". Я искал много вопросов здесь, а также искал его с помощью Google, но безуспешно... Я на 100% уверен, что все переменные отправлены с AJAX и получены PHP в правильной форме, я проверил это так:
$tabulka=$_SESSION["uzivatel"];
$slovensky=testVstupov($_POST["slovensky"]);
$prelozene=testVstupov($_POST["prelozene"]);
$druh=testVstupov($_POST["druh"]);
$lekcia=testVstupov($_POST["lekcia"]);
$reset=testVstupov($_POST["reset"]);
$id=testVstupov($_POST["id"]);
$nula=0;
//echo $tabulka."#".$slovensky."#".prelozene."#".$druh."#".$lekcia."#".$reset."#".$id."#".$nula;
function testVstupov($data)
{
$data=trim($data);
$data=stripslashes($data);
$data=htmlspecialchars($data);
return $data;
}
это эхо просто чтобы убедиться, что все переменные заполнены с правильным значением
Затем я пытаюсь обновить таблицу, но в результате появляется сообщение 304, переменная $hodnoty возвращается пустой:
$pripojenie=mysqli_connect("localhost","user","password","database");
if (mysqli_connect_errno($pripojenie))
{
echo "Zlyhalo pripojenie do databázy: ".mysqli_connect_error();
}
if($reset == "false")
{
$hodnoty = mysqli_query($pripojenie, "UPDATE `$tabulka` SET slovensky=$slovensky, preklad=$prelozene, druh=$druh, lekcia=$lekcia WHERE id='$id'");
}
if(mysqli_error())
{
die('Zápis do databázy sa nepodaril. Chyba: ' . mysqli_error() ); //skjurajozimy.
}
//ukncenie spojenia s databazou
mysqli_close($pripojenie);
Тот же код в другом файле php, но только для изменения разных столбцов в одной таблице работает. Этот код работает:
$pripojenie=mysqli_connect("localhost","user","password","database");
if (mysqli_connect_errno($pripojenie))
{
echo "Zlyhalo pripojenie do databázy: ".mysqli_connect_error();
}
$vysledok=mysqli_query($pripojenie, "SELECT skusane,spravne FROM `$tabulka` WHERE preklad='$data1'");
if(mysqli_error())
{
die('Výpis z databázy sa nepodaril. Chyba: ' . mysqli_error() ); //`skjurajozimy`.
}
$hodnoty = mysqli_fetch_array($vysledok);
$noveSkusane = $hodnoty['skusane']+1;
$noveSpravne = $hodnoty['spravne']+$data2;
$uspesnost = round($noveSpravne*$noveSkusane);
$hodnoty = mysqli_query($pripojenie, "UPDATE `$tabulka` SET skusane=$noveSkusane, spravne=$noveSpravne, uspesnost=$uspesnost WHERE preklad='$data1'");
if(mysqli_error())
{
die('Zápis do databázy sa nepodaril. Chyba: ' . mysqli_error() ); //`skjurajozimy`.
}
//ukncenie spojenia s databazou
mysqli_close($pripojenie);
Столбцы в моей таблице: id словенский прекурд друх лекча скусане справне успешно, где id - автоинкремент.
Пожалуйста, любые предложения, почему обновление кода не работает?
2 ответа
Наконец, решение проблемы было с галочками и пробелами, поэтому исправьте код здесь:
$hodnoty = mysqli_query($pripojenie, "UPDATE `$databaza`.`$tabulka` SET `slovensky` = '$slovensky', `preklad` = '$prelozene', `druh` = '$druh', `lekcia` = '$lekcia' WHERE `$tabulka`.`id` =$id;");
Ты пытался:
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Pragma: no-cache' );
в начале вашей функции PHP?