Различные вопросы по PHP и MySQL

241K
.
hooligan, Зря ты допускаешь повторения одинаковых ip+user_id, лучше было бы поставить на эти поля составной ключь, а в запросе на добавление - использовать ON DUPLICATE KEY UPDATE (загугли для лучшего понимания )
.
L!MP (05.06.2011/21:50)
hooligan, Зря ты допускаешь повторения одинаковых ip+user_id, лучше было бы поставить на эти поля составной ключь, а в запросе на добавление - использовать ON DUPLICATE KEY UPDATE (загугли для лучшег
что бы не было дубликатов записи? посмотрю и почитаю... Спасибо...
.
L!MP, в моем случае это не нужно...
ON DUPLICATE KEY UPDATE
я делаю историю входов на сайт и каждая запись важна... Даже если не отличается от предыдущей...
.
hooligan, С какой целью ты храниш одинаковые записи? Обьясни.
.
L!MP, почитал ещё google... До конца не разобрался...
Если ip повторяется то запись просто не идет или обновляется предыдущая?
У меня там ещё несколько полей time, browser, metka... И при входе на сайт все записывается так:
mysql_query("INSERT INTO `iphistory` SET `user_id` = '".$user['id']."', `ip` = '" . $ipp . "', `metka` = 'login', `browser` = '" . $agn . "',  `time` = '$realtime';");
дык что будет если добавить условие ON DUPLICATE KEY UPDATE?
.
hooligan, Да не, ты прав. Такой вариант не подходит в этом случае.
.
hooligan
L!MP, значит я не совсем нуб...
.
kapynka
Ⓚⓡⓐⓢⓐⓥⓒⓗⓘⓚ
Подскажите что в етом коде не так.
Код с анкета.рнр

if (!empty($user['imname']))
$out .= '<span class="gray">Имя:</span> ' . $user['imname'] . '<br />';
echo '<span class="gray">Баллов:</span> ' . (empty($id) ? mysql_result(mysql_query("select `bals` from `users` where id='$user_id'"),0) : mysql_result(mysql_query("select `bals` from `users` where id='$id'"),0)) . ' <br />';



ато в анкете показывает хх балов , а когда дарю подарок то там показывает ххх подарков. В чем может быть причина разных показателей балов?
.
не получается правильная сортировка...
mysql_query("SELECT `mail_msg`.`id` as `mid`,  `mail_msg`.`from` as `name`, `mail_msg`.`time` as `tm`, `mail_msg`.`id_user` as `user_id`, `mail_msg`.`read` as `read`,  `mail_msg`.*, `users`.* FROM `mail_msg` LEFT JOIN `users` ON `mail_msg`.`id_user`=`users`.`id` WHERE `mail_msg`.`id_kont`='" . $user_id . "'  AND `mail_msg`.`sys`='1' AND `mail_msg`.`delete`!='" . $user_id  . "'
GROUP BY `users`.`name` 
ORDER BY`mail_msg`.`time` 
DESC LIMIT $start, $kmess");
сортирует по первому времени ('time'), а надо по последнему...
Пробовал так:
ORDER BY MAX(`mail_msg`.`time`)
вроде получилось,
но потом заметил что сортирует правильно только входящие... Это модуль почты и надо что бы исходящие и входящие сортировались по последнему письму (по метке 'time')...
Кто нибудь понял о чем я? Как это сделать?
.
в эту тему кто нибудь заглядывает?
Подскажите как заменить в строке:
index.php/?act=com&amp;id=387
&amp; на &
делаю так:
$str = str_replace("amp;", "&amp;", $str);
получается:
index.php/?act=com&&amp;id=387
Всего: 7969