Что не так с запросом?

194
13 ноября 2017, 22:00

Хочу сделать возможным редактирование конкретной статьи, а не всех имеющихся, не могу построить правильный запрос:

В этом случае возникает ошибка:

<meta charset="utf-8"> 
<link rel="stylesheet" href="css/style.css">
<?php   
    include 'bd.php';
    $zagolovok = $_POST['zagolovok'];
    $smallopisanie = $_POST['smallopisanie'];
    $opisanie = $_POST['opisanie']; 
    $editid  = $_GET[edit];
    $result = mysql_query("UPDATE news WHERE id = '$editid' SET zagolovok = replace('$zagolovok','zagolovok','$zagolovok')");
    if (!$result) {
        die('Неверный запрос: ' . mysql_error());
    }
    if ($result) {
        echo "<center><p style='color: #404040; font-size: 24px; text-decoration: none; font-family: 'Gerbera''>Статья отредактирована</p><br><a style='color: #1d97e1; font-size: 24px; text-decoration: none; font-family: 'Gerbera'' href='adminpanel'>Назад в админ-панель</div></a></center>";
    }
?>

В этом случае редактируются все статьи:

<?php   
    include 'bd.php';
    $zagolovok = $_POST['zagolovok'];
    $smallopisanie = $_POST['smallopisanie'];
    $opisanie = $_POST['opisanie']; 
    $result = mysql_query("UPDATE news SET zagolovok = replace('$zagolovok','zagolovok','$zagolovok' WHERE id = '$editid')");
    if (!$result) {
        die('Неверный запрос: ' . mysql_error());
    }
    if ($result) {
        echo "<center><p style='color: #404040; font-size: 24px; text-decoration: none; font-family: 'Gerbera''>Статья отредактирована</p><br><a style='color: #1d97e1; font-size: 24px; text-decoration: none; font-family: 'Gerbera'' href='adminpanel'>Назад в админ-панель</div></a></center>";
    }
?>
Answer 1

исправьте последовательность

$result = mysql_query("UPDATE `news`  SET `zagolovok` = REPLACE(`zagolovok`,'zagolovok','$zagolovok') WHERE `id` = '$editid' ");

но я бы порекомендовал немного другой код по проще

$result = mysql_query('
  UPDATE `news`
  SET `zagolovok` = \''.$zagolovok.'\' 
  WHERE `id` = \''.$editid.'\' 
  ');

В вашем коде я не увидел правильно ли берется переменная $editid Также хотел обратить ваше внимание на неправильное применение синтаксиса функции REPLACE

" $editid пуст" - пока он пуст ни один запрос у вас не получится.

у вас в коде должно быть что то вроде

$editid = $_POST['editid '];

Рекомендую прислушаться к пользователю @Mike - и отказаться от использования mysql_query в пользу php PDO

READ ALSO
Как вывести циклом поля из вкладок

Как вывести циклом поля из вкладок

Проблема следующая: Пытаюсь вывести значения кастомных полей размещенных во вкладках, например: вкладка 1, вкладка 2, и тд

197
Отправка значений и файлов через php ajax

Отправка значений и файлов через php ajax

Видел подобные вопросы но там идет отправка Только файла, а не как у меня Файл + строковые данные формыСобственно сам вопрос есть форма приводить...

223
Сайт блокирует доступ парсеру

Сайт блокирует доступ парсеру

ЗдравствуйтеИспользую Simple HTML DOM Parser

282