У меня есть базовый запрос на обновление:
$sql = "UPDATE `$row[2]` SET `gebuchtvon` = \"$neugebuchtvon\" WHERE `id` = $row[0]";
sql работает нормально, если я вставлю его в поле sql phpmyadmin, но по какой-то причине он не работает из файла PHP.
Я использовал почти такой же синтаксис в другом файле, где он отлично работает.
Кроме того, я читал, что он может не работать, потому что оператор WHERE не выполняется, но это не может быть проблемой, потому что, как я уже сказал, это работает, если я вставлю его в поле SQL.
Надеюсь, кто-нибудь может мне помочь, заранее спасибо :)
UPDATE
$sql = "SELECT `id`,`gebuchtvon`,'montag' as tag FROM `montag` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'dienstag' as tag FROM `dienstag` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'mittwoch' as tag FROM `mittwoch` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'donnerstag' as tag FROM `donnerstag` WHERE `gebuchtvon` <> \"\" "
."UNION ALL SELECT `id`,`gebuchtvon`,'freitag' as tag FROM `freitag` WHERE `gebuchtvon`<> \"\" ";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)){
if(strpos($row["gebuchtvon"],$datum) > 0){//nur wenn es eine Buchung gibt, die heute wieder anfängt
echo $row["gebuchtvon"]."<br><br>";
$gebuchtvon = explode("#",$row["gebuchtvon"]);//alle gebuchten Fahrten gesplittet
for($i=0;$i<count($gebuchtvon);$i++){//durch alle Buchungen laufen
if(strpos($gebuchtvon[$i],$datum) >0){//wenn die aktuelle Buchung wieder anfängt => aktualisieren
$offset = strrpos($gebuchtvon[$i],"/");
$gebuchtvon[$i] = substr($gebuchtvon[$i],0,$offset);
}
}
$neugebuchtvon = implode("#",$gebuchtvon); //neuen TExt imploden um in DB zu schreiben
echo $neugebuchtvon."<br><br>";
$sql = "UPDATE `".$row[2]."` SET `gebuchtvon` = \"".$neugebuchtvon."\" WHERE `id` = ".$row[0];
echo $sql."<br><br>";
$ergebnis = mysqli_query($conn,$sql);
echo $ergebnis."<br><br>";
}
}
Я не знаю, сколько кода вам нужно ...
Извините за странные имена переменных. Я немец, и jsut взял вещи, которые описывают, что эти переменные делают
Обновление 2
Это не дубликат. Нет ошибки, поэтому нет ошибки, которую я могу проверить.
Обновление 3
var_dump ($ строка):
array(6) { [0]=> string(1) "3" ["id"]=> string(1) "3" [1]=> string(29) "1/h/2019-03-11#1/r/2019-03-11" ["gebuchtvon"]=> string(29) "1/h/2019-03-11#1/r/2019-03-11" [2]=> string(7) "freitag" ["tag"]=> string(7) "freitag" }
Обновление 4
Данный SQL:
ОБНОВЛЕНИЕ freitag SET gebuchtvon = "1 / h # 1 / r" ГДЕ id = 3; Просто пример ...