Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2011, 07:26   #1
Slavdholl
 
Регистрация: 02.03.2011
Сообщений: 5
Вопрос Обновление данных в БД.

Доброго времени суток!
Проблема такая: ниже приведен скрипт обработчика формы, который должен в базе данных обновлять значение поля center в таблице dia, т.е. полt должно накапливать значения.
Например: значение поля было 0, стало 10. Было 10, стало 20 и т.д..
Но код почему то не работает. Просто прибавляет 10, но в бд поле остается с прежним значением.
PHP код:
<?php
...
...
...

if(isset(
$_POST['center']) && $_POST['center'] = "checked"){
$result mysql_query("SELECT center FROM dia WHERE id='1'");
$_POST['center'] = $result 10;
$center $_POST['center'];
mysql_query ("UPDATE dia SET center='$center' WHERE id='1'");
}
...
...
...
?>

Последний раз редактировалось Stilet; 29.04.2011 в 08:23.
Slavdholl вне форума Ответить с цитированием
Старый 29.04.2011, 07:54   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Хм
PHP код:
$_POST['center'] = $result 10
вот это - ваще кусок бреда

не проще ли
PHP код:
if(isset($_POST['center']) && $_POST['center'] == "checked"){
mysql_query("UPDATE dia SET center=center+10 WHERE id='1'");

сделать?
но заметьте - данное увеличение на 10 будет происходить только для элемента с id=1

Последний раз редактировалось ADSoft; 29.04.2011 в 09:34.
ADSoft на форуме Ответить с цитированием
Старый 29.04.2011, 08:17   #3
mr.allty
Пользователь
 
Регистрация: 22.03.2011
Сообщений: 23
По умолчанию

Здравствуйте! Как у Вас дела?

Смотрите, функция mysql_query() возвращает результат сервера БД MySQL, то есть в вашем случае он вернет след. отношение (таблица):
++++++++
+ center +
++++++++
+ -- x -- +
++++++++
где X - значение поля center.

Затем, чтобы вытащить этот результат, нужно воспользоваться одной из следующих функций:
  • mysq_fetch_row - Обрабатывает ряд результата запроса и возвращает неассоциативный массив. Ключами массива являются численные индексы.
  • mysql_fetch_assoc - Обрабатывает ряд результата запроса и возвращает ассоциативный массив.
  • mysql_fetch_array - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба.
  • mysql_fetch_object - Обрабатывает ряд результата запроса и возвращает объект.
/**Примечание: информация взята с официального мануала.

Поэтому ваш код будет выгдялеть примерно след. образом:

PHP код:
if ($_SERVER["REQUEST_METHOD"] === "POST")
{
    
$addValue 10;            // число, на которое увеличиваем поле center

    
if (empty($_POST["center"] or $_POST["center"] !== "checked")
    {
        
// обработка...
    
}
    
    
$sql "SELECT 
                center
            FROM 
                dia
            WHERE 
                id = 1"
;
    
    
$result mysql_query($sql) or die(mysql_error());
    
    if (
mysql_num_rows($sql) <= 0)
    {
        
// обработка...
    
}
    
    
$row mysql_fetch_assoc($result);    
    
$center $row["center"] + $addValue;    // получаем значение center + число, на к-ое надо увеличить
        
    
$sql "UPDATE
                dia
            SET
                center = '
$center'
            WHERE
                id = 1"
;
                
    
mysql_query($sql) or die(mysql_error());    // выполняем запрос на обновление

"Сильный" программист
mr.allty вне форума Ответить с цитированием
Старый 29.04.2011, 17:38   #4
Slavdholl
 
Регистрация: 02.03.2011
Сообщений: 5
По умолчанию

Спасибо за помощь.
Slavdholl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление списка данных без потери данных в переменных VaBank БД в Delphi 13 03.06.2009 10:47
Обновление данных ЕленаС Microsoft Office Excel 3 11.02.2009 00:19
Обновление данных в БД EdNovice Общие вопросы .NET 2 16.10.2008 12:13
обновление данных AnGrig БД в Delphi 3 14.10.2007 13:08
Обновление данных в БД EdNovice БД в Delphi 4 26.06.2007 14:35