Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / про Update / 25 сообщений из 35, страница 1 из 2
23.10.2003, 14:59
    #32303118
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Хелло всем!
Хотелось бы узнать как можно заменить значение некоего поля в MySql на противоположное?
Вот у меня luky=1 или 0

Правильно ли так:

update table set luky=not luky where name=$name;


Пасиба
...
Рейтинг: 0 / 0
23.10.2003, 15:18
    #32303155
Sir Antony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Привет!

автор писал:update table set luky=not luky where name=$name;

так нельзя

Можно попробовать сделать поле типа ENUM и записать в него два значения: 0 и 1. Потом уже манипулировать с ними как душе угодно.

Вот тут можно посмотреть |> http://%5Dhttp://www.mysql.com/doc/ru/ENUM.html%5B/url] - документаха к типу.

Касательно False и True почитай там же комментарий от Steve Lawson on Friday May 17 2002, @6:24am

Всего.
...
Рейтинг: 0 / 0
23.10.2003, 15:21
    #32303163
Sir Antony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Ой что-то расколбасило не по детски

вот линка: http://www.mysql.com/doc/ru/ENUM.html

Да, ещё можно через язык программирования, через внешнюю переменную.
...
Рейтинг: 0 / 0
23.10.2003, 15:22
    #32303164
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Sir Anthony, не работает твоя документаха, к сожалению, а так бы почитала.
И вообще уже столько материала просмотрела по MySql, только не нашла того, что мне нужно:(

Ну а если я сделаю как enum, то как можно с этим манипулировать?

:)
...
Рейтинг: 0 / 0
23.10.2003, 15:25
    #32303173
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
писал:Да, ещё можно через язык программирования, через внешнюю переменную.

Sir Anthony, а я и делаю запрос из РНР
...
Рейтинг: 0 / 0
23.10.2003, 15:34
    #32303203
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Ну хоть плачь
...
Рейтинг: 0 / 0
23.10.2003, 15:45
    #32303231
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
но вот если бы luky было или 1 или -1, то можно было бы

Код: plaintext
update table set luky = luky * - 1  where name=$name
...
...
Рейтинг: 0 / 0
23.10.2003, 15:46
    #32303236
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Ариша, подожди, не плачь, щас я за тебя доку прочту...
...
Рейтинг: 0 / 0
23.10.2003, 15:47
    #32303239
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Ой, точно! Ура! fedd , ты самый настоящий гений! Спасибо тебе огромное!
...
Рейтинг: 0 / 0
23.10.2003, 15:51
    #32303252
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
fedd , ну пожалуйста, только не надо мне говорить, что я мало читаю и плохо учусь! Ты не знаешь что и сколько я читаю :) А это уже вопрос гениальности - сделать такое перемножение, в доках таких идей не подкидывают :) А как заменять значение в поле я знаю, просто я думала, что есть функция замены на противоположное


Arisha
...
Рейтинг: 0 / 0
23.10.2003, 15:53
    #32303255
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
есть еще, абажжи!

функция IF(expr1,expr2,expr3)

если экспр 1 правда, то становится равным экспр 2 иначе экспр 3

пишешь так:

Код: plaintext
update table set luky = if(luky= 0 ,  1 ,  0 ) where name=$name
...
Рейтинг: 0 / 0
23.10.2003, 15:56
    #32303263
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
или даже

Код: plaintext
update table set luky = if(luky,  0 ,  1 ) where name=$name


потому что если оно это лаки рано нулю то это всеравно что неправда
...
Рейтинг: 0 / 0
23.10.2003, 15:57
    #32303265
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
рано = равно, торопился ;)
...
Рейтинг: 0 / 0
23.10.2003, 16:00
    #32303275
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
А нужно ли этот кусок занести в кавычки, а то mysql ругается.

Код: plaintext
if(luky,  0 ,  1 ) 
...
Рейтинг: 0 / 0
23.10.2003, 16:02
    #32303281
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
в кавычки нелья, попробуй в скобки

у меня моськи под рукой нет, пробуй ты.
...
Рейтинг: 0 / 0
23.10.2003, 16:02
    #32303284
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
напиши как ругается-то...
...
Рейтинг: 0 / 0
23.10.2003, 16:10
    #32303306
Sir Antony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
update <tablename> set <fieldname> = if(<fieldname>, 0, 1)

Стопудово работает - проверил.
<fieldname> - поле типа TINYINT(3) UNSIGNED
...
Рейтинг: 0 / 0
23.10.2003, 16:11
    #32303309
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Ну кусочек кода такой
Код: plaintext
1.
2.
3.
4.
$res = mysql_query( "update shedule SET luky = if(luky,0 , 1 ) 
         WHERE name = '$name' AND surname = '$surname' ",$link);
printf( "Updated records: %d\n" ,mysql_affected_rows());
mysql_query( "commit" );
exit;


На него ругаются так

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in e:\project\www\user_table.php on line 29
Updated records: -1
...
Рейтинг: 0 / 0
23.10.2003, 16:13
    #32303314
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
писал:update <tablename> set <fieldname> = if(<fieldname>, 0, 1)

Стопудово работает - проверил.


У меня в mysql тоже работает, а РНР ругает
...
Рейтинг: 0 / 0
23.10.2003, 16:14
    #32303318
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
на $link твой ругается!
...
Рейтинг: 0 / 0
23.10.2003, 16:16
    #32303322
Sir Antony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Здаётся мне не в query тут дело....
Мож подключение не верно. Которое $link

Может оно оборвано?
...
Рейтинг: 0 / 0
23.10.2003, 16:16
    #32303325
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
> Ты не знаешь что и сколько я читаю

а вот почитай про уникаьлные и суррогатные ключи заодно! ;)

Гр(а|у)бера там книжку...

это я к тому, что ты человека по имени-фамилии ищешь! Неправильно это!
...
Рейтинг: 0 / 0
23.10.2003, 16:17
    #32303328
Arisha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
Ой, ну вот, я нашла ошибку - это я неправильно $link определила.
Ну все-равно после апдейта Updated records:-1

И в базе ничего не меняется :((((
...
Рейтинг: 0 / 0
23.10.2003, 16:18
    #32303330
Sir Antony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
где-то там $link=mysql_pconnect воткни

типа вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	if (! $link = mysql_pconnect($dbhost, $dbuser, $dbpass)) {
		if ($DB_DEBUG) {
			echo  "<h2>Невозможно соединиться с $dbhost с именем пользователя $dbuser</h2>" ;
			echo  "<p><b>Ошибка MySQL</b>: " , mysql_error();
		} else {
			echo  "<h2>Ошибка базы данных.</h2>" ;
		}

		if ($DB_DIE_ON_FAIL) {
			echo  "<p>Выполнение программы прервано." ;
			die();
		}
	}

...
Рейтинг: 0 / 0
23.10.2003, 16:20
    #32303340
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
про Update
>Ну все-равно после апдейта Updated records:-1
а аффектед роусу не надо линк передавать - я забыл?

>И в базе ничего не меняется :((((
см. мой постинг от сегодня, 16:16. То есть всего вероятнее неправильны условия where.

выведи запрос, как ты его приготовила, в броузер и попробуй в консоли запустить.

ох..
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / про Update / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]