2013-07-07 3 views
0

У меня есть две функции на одной и той же веб-странице, каждая из которых обновит одну другую таблицу в той же базе данных, в зависимости от того, какую кнопку вы нажимаете.PHP update query, code revision

Эта функция изменяет одну таблицу и работает:

function SaveMItem() 
    { 
    $DayOfWeekNumber = 0; 
     if ($_POST['selDayOfTheWeek']) 
     {$DayOfWeekNumber = $_POST['selDayOfTheWeek'];} 

     mysql_query("UPDATE tblMItem SET ItemText = '" . $_POST['txtFirstOne'] . "' WHERE MenuItemID = " . (1 + $DayOfWeekNumber)); 
      echo "SaveMItem Ok"; 
    } 

function SavetblAnnouncement(){ 

    mysql_query("UPDATE TblAnuncios SET Title=".$_POST['txtAnnouncementTitle']. ",Content=".$_POST['txtAnnouncementContent']." WHERE 1"); 

    echo "Completed announcement" ; 
    } 

При нажатии кнопки SaveMItem я могу увидеть сообщение SaveMItem Ok и сохраняет новые значения в таблице.

Когда я нажимаю кнопку SavetblAnnouncement, я могу увидеть сообщение Завершенное объявление, но таблица TblAnuncios не будет обновлена.

Поскольку этот файл находится в одном файле, База данных будет одинаковой, и функция SaveMItem сможет обновить таблицу, я полагаю, что соединение с БД в порядке.

Может ли кто-нибудь сообщить мне, что я делаю неправильно?

Заранее спасибо.

+0

ваш запрос на обновление должен обновить всю запись всей таблицы одним и тем же. –

+0

Прежде чем анализировать, что происходит, используйте обработку ошибок! Вы слепо верите, что все работает, и теперь вы _guess_, что может быть неправильно. MySQL, безусловно, выдает ошибку, говорит вам, что не так, но вы не слушаете! Проверьте руководство по расширению php mysql и прочитайте, как обнаружить ошибки. – arkascha

+0

Кроме того: расширение mysql обесценивается, вместо этого используйте mysqli или PDO, и ваш код в настоящее время широко открыт для SQL-инъекций! – arkascha

ответ

1

Вам не хватает котировок вокруг значений.

$title = mysql_real_escape_string($_POST['txtAnnouncementTitle']); 
    $txt = mysql_real_escape_string($_POST['txtAnnouncementContent']); 
    mysql_query("UPDATE TblAnuncios SET Title='".$title. "',Content='".$txt."' WHERE 1"); 

Вы должны также избежать строки, как для предотвращения инъекции SQL, а также сделать запрос правильно, если заголовок или текст содержит символы кавычек.