Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поменять значение
 
 автор: Elder_Imp   (08.09.2008 в 10:27)   письмо автору
 
 

Не судите строго, вопрос для вас может совсем будет смешной, но я понять не могу..
Допустим, есть таблица такого плана со значениями в ней:

+-----+------+
| X | Y |
+-----+------+
| a | b |
+-----+------+

Какой командой мне можно поменять значение B, не трогая всю строчку ? Если использовать INSERT, то придется вводить и A и B, а мне нужно только B. Помогите! Заранее спасибо

  Ответить  
 
 автор: Trianon   (08.09.2008 в 10:30)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 10:27)
 

>Какой командой мне можно поменять значение B, не трогая всю строчку ? Если использовать INSERT, то придется вводить и A и B, а мне нужно только B. Помогите! Заранее спасибо

А если использовать UPDATE ?
Кстати, если использовать INSERT совсем необязательно вводить все поля.

Впечатление такое, что Вы не знаете адрес справочника языка MySQL.

  Ответить  
 
 автор: Elder_Imp   (08.09.2008 в 10:53)   письмо автору
 
   для: Trianon   (08.09.2008 в 10:30)
 

=0

Я попробывал поработать с ф-цией UPDATE. Она на ура добавляет в нужную область значение, но она НЕ ЗАПИСЫВАЕТ нули! Вот так вот берет и проглатывает их, записывая все значение без нуля! Что делать?

  Ответить  
 
 автор: Trianon   (08.09.2008 в 11:03)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 10:53)
 

показать здесь структуру таблицы (текст оператора CREATE TABLE) и текст самого запроса.

  Ответить  
 
 автор: Elder_Imp   (08.09.2008 в 11:10)   письмо автору
 
   для: Trianon   (08.09.2008 в 11:03)
 

Таблица в MySQL имеет следующий вид:

id | name | count
1 | elder_imp | 12345

Запрос таков:

<?
..после подключения к БД и всех проверок на ошибки
$query = "UPDATE имя_таблицы SET count = $cnt WHERE id=1;";
$result = mysql_query($query);
?>

$cnt собственно содержит число, которое следует записать в таблицу. Я написал 023145 - а в БД записывается 12345

  Ответить  
 
 автор: Trianon   (08.09.2008 в 11:13)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 11:10)
 

Я попросил два текста - Вы не привели ни одного.
Запрос
SHOW CTEATE TABLE имя_таблицы
что показывает?
echo $query что показывает?
По-моему, 012345 и 12345 - числа равные.

  Ответить  
 
 автор: Elder_Imp   (08.09.2008 в 11:22)   письмо автору
 
   для: Trianon   (08.09.2008 в 11:13)
 

| имя_таблицы | CREATE TABLE `имя_таблицы` (
`id` int(4) DEFAULT NULL,
`name` text,
`count` text
) ENGINE = InnoDB DEFAULT CHARSET=latin1 |

Это выводится в MysQL на запрос SHOW CREATE TABLE

З.Ы. Извините, если отнима время

  Ответить  
 
 автор: Trianon   (08.09.2008 в 11:31)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 11:22)
 

Замечательно.
$query = "UPDATE имя_таблицы SET count = $cnt WHERE id=1;";
echo $query; 
что показывает?


Между прочим, имя поля count в запросе я бы поставил в обратные косые кавычки:
UPDATE имя_таблицы SET `count` = $cnt WHERE ...

от греха подальше.

  Ответить  
 
 автор: Elder_Imp   (08.09.2008 в 11:32)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 11:22)
 

echo($query);

UPDATE user SET count = 012345 WHERE id=1;


Ужас..

  Ответить  
 
 автор: Elder_Imp   (08.09.2008 в 11:33)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 11:32)
 

echo($result);

Выдает 1

  Ответить  
 
 автор: Elder_Imp   (08.09.2008 в 11:35)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 11:33)
 

Все, отбой!
Проверил 123456 и 0123456 - действительно разницы никакой. Спасибо!

  Ответить  
 
 автор: Trianon   (08.09.2008 в 11:37)   письмо автору
 
   для: Elder_Imp   (08.09.2008 в 11:32)
 

Ничего удивительного.
Число 012345 ( а 012345 - это число, а не текст) нормализуется до 12345 , после чего аккуратно кладется в таблицу.
Если Вы хотите записывать текст - то и оператор SQL нужно готовить как для текста. с экранированием, с кавычками, и прочими синтаксическими бубнами.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования