$sql="SELECT data FROM cards WHERE card_number='".$_POST['card_number']."'";
$query=mysql_query($sql);
$res=mysql_fetch_array($query);
$d=$res['data'];
$sql="UPDATE cards SET data=$d+'".$_POST['card_number']."' WHERE card_number='".$_POST['card_number']."'";
$query=mysql_query($sql);
Переменная $d есть, думаю ошибка в суммировании переменных.
Спустя 4 минуты, 5 секунд (28.04.2012 - 10:07) Kuliev написал(а):
mityaj
Чтото я ничего не понял из поставленной задачи
Чтото я ничего не понял из поставленной задачи

Спустя 18 минут, 48 секунд (28.04.2012 - 10:26) mityaj написал(а):
Есть форма - id, data
Нужно чтобы при каждом новом запросе к data добавлялось новое значение.
так понятно?
Нужно чтобы при каждом новом запросе к data добавлялось новое значение.
так понятно?
Спустя 21 минута, 20 секунд (28.04.2012 - 10:47) Игорь_Vasinsky написал(а):
UPDATE `table` SET `cell` = `cell` + anything WHERE `id` = id
Спустя 3 минуты, 28 секунд (28.04.2012 - 10:50) mityaj написал(а):
так не получается. в чем может быть проблема?
Спустя 4 дня, 23 часа, 17 минут, 47 секунд (3.05.2012 - 10:08) mityaj написал(а):
вот такой запрос без ошибок, но почему то дает 0
echo $_POST['data'] дает нормальный результат, а вот когда именно в sql сумма дает 0.
echo $_POST['data'] дает нормальный результат, а вот когда именно в sql сумма дает 0.
$sql="UPDATE `cards` SET `data`='".$d."'+'".$_POST['data']."' WHERE `card_number`='".$_POST['card_number']."'";
Спустя 7 минут, 53 секунды (3.05.2012 - 10:16) sergeiss написал(а):
mityaj, у тебя тут целый "букет" проблем:
1. Выведи подготовленный запрос. Посмотри на него, подумай... Можешь даже сюда запостить.
Впрочем, я тебе и так скажу: у тебя идет сложение (оператором "плюс") двух символьных переменных (!!!), которые записываются, судя по всему, в колонку целого типа. Ничего удивительного, что там ноль получается.
2. Нет защиты от SQL-инъекции, ты напрямую вставляешь ПОСТ-данные в запрос. Это целые ворота для злоумышленника.
3. Тебе уже написали ранее, как сделать один АПДЕЙТ, без СЕЛЕКТа (Игорь_Vasinsky написал). А ты упорно "гнёшь свою линию". Так зачем ты спрашиваешь, если не слушаешь умные советы?
1. Выведи подготовленный запрос. Посмотри на него, подумай... Можешь даже сюда запостить.
Впрочем, я тебе и так скажу: у тебя идет сложение (оператором "плюс") двух символьных переменных (!!!), которые записываются, судя по всему, в колонку целого типа. Ничего удивительного, что там ноль получается.
2. Нет защиты от SQL-инъекции, ты напрямую вставляешь ПОСТ-данные в запрос. Это целые ворота для злоумышленника.
3. Тебе уже написали ранее, как сделать один АПДЕЙТ, без СЕЛЕКТа (Игорь_Vasinsky написал). А ты упорно "гнёшь свою линию". Так зачем ты спрашиваешь, если не слушаешь умные советы?
Спустя 23 секунды (3.05.2012 - 10:16) inpost написал(а):
mityaj
Тебе же код дали выше. Что не получается? Ошибка через mysql_error() ? Так покажи запрос, который дал тебе Игорёк и как ты у себя его записал! И код ошибки.
Тебе же код дали выше. Что не получается? Ошибка через mysql_error() ? Так покажи запрос, который дал тебе Игорёк и как ты у себя его записал! И код ошибки.
Спустя 19 минут, 30 секунд (3.05.2012 - 10:36) Игорь_Vasinsky написал(а):
Цитата |
вот такой запрос без ошибок, но почему то дает 0 |
Цитата |
$sql="UPDATE `cards` SET `data`='".$d."'+'".$_POST['data']."' WHERE `card_number`='".$_POST['card_number']."'"; |
в таком виде запрос и не должен ничё выводить, а вот если его в mysql_query() сунуть - то если условие соблюдено - то что то должно произойти.
Спустя 19 минут, 28 секунд (3.05.2012 - 10:55) mityaj написал(а):
Цитата (sergeiss @ 3.05.2012 - 08:16) |
mityaj, у тебя тут целый "букет" проблем: 1. Выведи подготовленный запрос. Посмотри на него, подумай... Можешь даже сюда запостить. Впрочем, я тебе и так скажу: у тебя идет сложение (оператором "плюс") двух символьных переменных (!!!), которые записываются, судя по всему, в колонку целого типа. Ничего удивительного, что там ноль получается. 2. Нет защиты от SQL-инъекции, ты напрямую вставляешь ПОСТ-данные в запрос. Это целые ворота для злоумышленника. 3. Тебе уже написали ранее, как сделать один АПДЕЙТ, без СЕЛЕКТа (Игорь_Vasinsky написал). А ты упорно "гнёшь свою линию". Так зачем ты спрашиваешь, если не слушаешь умные советы? |
пока без инъекций давайте я разберусь :D
$sql="UPDATE `cards` SET `data`=`data`+'".$_POST['data']."' WHERE `card_number`='".$_POST['card_number']."'";
возвращает 0
$sql="UPDATE `cards` SET `data`='".$_POST['data']."' WHERE `card_number`='".$_POST['card_number']."'";
возварщает то, что ввожу
ОШИБОК НЕТУ. может в базе данных проблема?
Спустя 6 часов, 32 минуты, 43 секунды (3.05.2012 - 17:28) sergeiss написал(а):
mityaj!!! "Для тех, кто в танке": выполни команду
и посмотри, что там у тебя. С какого ПЕРЕПУГА ты в кавычки заключаешь целое число? Я тебе об этом сказал уже, но, похоже, читать тебя не научили пока. Только писать.
echo $sql.'<br>';
и посмотри, что там у тебя. С какого ПЕРЕПУГА ты в кавычки заключаешь целое число? Я тебе об этом сказал уже, но, похоже, читать тебя не научили пока. Только писать.
Спустя 1 час, 18 минут, 39 секунд (3.05.2012 - 18:47) inpost написал(а):
mysql_query("
UPDATE `cards` SET
`data`=`data`+ ".(int)$_POST['data']."
WHERE `card_number`=".(int)$_POST['card_number']."
") or die(mysql_error());
Спустя 13 часов, 39 минут, 47 секунд (4.05.2012 - 08:26) mityaj написал(а):
у меня не числа должны быть,а буквы.
данные - это varchar.
нужно, чтобы предыдущее значение склеивалось с новым и забивалось в таблицу.
данные - это varchar.
нужно, чтобы предыдущее значение склеивалось с новым и забивалось в таблицу.
Спустя 4 минуты, 34 секунды (4.05.2012 - 08:31) mityaj написал(а):
я уже сам разобрался. надо было наверное уточнить, что у меня не цифры. в общем вот так получается отлично!
if (isset($_POST['card_number'])) {$card_number = $_POST['card_number']; if ($card_number == '') {unset($card_number);}}
if (isset($_POST['data'])) {$data = $_POST['data']; if ($data == '') {unset($data);}}
$sql="SELECT * FROM cards WHERE card_number='".$_POST['card_number']."'";
$query=mysql_query($sql);
$res=mysql_fetch_array($query);
$d=$res['data'];
$g=$d.'.'.$data;
$sql="UPDATE `cards` SET `data`='".$g."' WHERE `card_number`='".$_POST['card_number']."'";
//$sql="UPDATE `cards` SET `data`=`data`+'".$_POST['data']."' WHERE `card_number`='".$_POST['card_number']."'";
if (isset($card_number) && isset($data))
{
mysql_query($sql, $con);
echo '<script type="text/javascript">
window.alert("Запись мед карты добавлена")
</script>';
}
else
{
echo '<script type="text/javascript">
window.alert("Не все регистрационные данные были введены")
</script>';
}
Спустя 2 часа, 55 минут, 5 секунд (4.05.2012 - 11:26) sergeiss написал(а):
Ежели у тебя там строки, то тогда вместо
Цитата (mityaj @ 3.05.2012 - 12:55) |
$sql="UPDATE `cards` SET `data`=`data`+'".$_POST['data']."' WHERE `card_number`='".$_POST['card_number']."'"; |
вот так попробуй:
Цитата (mityaj @ 3.05.2012 - 12:55) |
$sql="UPDATE `cards` SET `data`=CONCAT(`data`, '".$_POST['data']."') WHERE `card_number`='".$_POST['card_number']."'"; |
Чем меньше ты делаешь обработки в ПХП, тем лучше.
Спустя 2 часа, 6 минут, 22 секунды (4.05.2012 - 13:33) inpost написал(а):
Ты хотел в начале при помощи + склеить?
$d+'".$_POST['card_number']."'
Вообще-то склеивается при помощи конкатенации строк, 2 переменных, между ними необходимо ставить точку!!!
$d+'".$_POST['card_number']."'
Вообще-то склеивается при помощи конкатенации строк, 2 переменных, между ними необходимо ставить точку!!!
$d.$_POST['card_number']
Спустя 12 минут (4.05.2012 - 13:45) sergeiss написал(а):
inpost - он внутри Мускуля пытался склеить "плюсом", а не вы ПЫХе
