Помогите составить текст запроса MySQL

rosolovsky

Новичок
Не могу справиться с текстом запроса.
Есть таблица с двумя полями: ip - там хранится ip-адрес в целочисленном виде, и ipaddress где должен быть ip-адрес в формате xxx.xxx.xxx.xxx

Вот собственно запрос который я пытаюсь правильно написать но уже не знаю как надо :)

$result = mysql_query("UPDATE suggestions_votes SET ipaddress=".long2ip(."ip".")");

Как надо правильно записать? Помогите.
 

rosolovsky

Новичок
Хорошо тогда как будет с использованием INET_NTOA

$result = mysql_query("select INET_NTOA(ip) from suggestions_votes");

Так?
 

rosolovsky

Новичок
Да есть у меня система голосования, и там ip адреса хранятся в БД вот так $ip = sprintf('%u',ip2long($_SERVER['REMOTE_ADDR']));
Мне нужно в БД иметь соответствие, ну так сложилось уж. Я и хочу в отдельное поле записать нормальное IP?
 

rosolovsky

Новичок
В итоге вот правильный запрос

$result = mysql_query("UPDATE suggestions_votes SET ipaddress=CAST(inet_ntoa(ip) as CHAR(15))");

Всем спасибо.
 

iceman

говнокодер
если у тебя есть ИП в целочисленном формате, зачем ты тогда его приобразовываешь и пытаешь обновить по форматированному формату?

ты делаешь двойную работу! мог в запросе поле заменить на целочисленный формат.
 

rosolovsky

Новичок
Да дело в том что я адаптировал найденную систему голосования под свой сайт и в своей работе она использует IP в целочисленном формате (который мне ничего не говорит). А для выявления всяких недобросовестных товарищей любителей накруток мне понадобился форматированный IP. Когда я спохватился то в базе уже 6 тис. голосов, и мне понадобилось преобразовать IP всех голосовавших. Вот бы еще прикрутить проверку по куки и я б успокоился.
 

prolis

Новичок
Мне нужно в БД иметь соответствие, ну так сложилось уж. Я и хочу в отдельное поле записать нормальное IP?
в своей работе она использует IP в целочисленном формате (который мне ничего не говорит)
- дело в том, что система голосования не просто так хранит IP в правильном формате хранения, тебе надо просто просто понять зачем так сделано и дописать её без использования лишних обратимых преобразований
 

rosolovsky

Новичок
Правильно. Система голосования хранит ip в челочисленном типе для контроля голосовавших (один голос с одного ip в сутки), так легче оперировать значением ip в таком формате.
 

iceman

говнокодер
rosolovsky
сорри, храни как хочешь, это твоя проблема, я просто подумал ты расшифровываешь в условие WHERE. мой касяк )))
 

rosolovsky

Новичок
Вобще то я хотел узнать (на сабжевом примере) как правильно составлять запросы MySQL, когда в теле запроса используются функции PHP. А то там с этими кавычками и конкантекациями голову сломить можно. :) Но подсказали мне решение попроще, за что всем и спасибо.
 

Dovg

Продвинутый новичок
>А то там с этими кавычками и конкантекациями голову сломить можно.
Лол. Поставь редактор с подсветкой синтаксиса .
 
Сверху