ramzes, на твой пост (
25.05.2011 / 09:56) отвечу, Спасибо. Я нашел решение, просто хотел спросить про скорость выполнения запросов
.gif)
скоро Вылажу свой первый полноценный модуль Ґґ. Говнокод конечно, но для первого раза простительно
Ни кто не писал первые скрипты с идеальным кодом =)
да и последующие тоже;)
всем привет!
Суть:
в таблице 2 поля ip и user_id
вывожу результат по пределенному ip вот так:
$req = mysql_query("SELECT * FROM `iphistory` WHERE `ip` = '".$search."' ORDER BY `user_id` DESC LIMIT $start, $kmess");
получаю результат:
IP: 83.149.1.211 ID: 70
IP: 83.149.1.211 ID: 70
IP: 83.149.1.211 ID: 70
IP: 83.149.1.211 ID: 70
IP: 83.149.1.211 ID: 70
IP: 83.149.1.211 ID: 3
IP: 83.149.1.211 ID: 3
IP: 83.149.1.211 ID: 3
IP: 83.149.1.211 ID: 2
IP: 83.149.1.211 ID: 2
IP: 83.149.1.211 ID: 2
Всё правильно и всё отлично, но можно ли как то убрать повторяющиеся строки?
Что бы было просто и без повторений? Типа:
IP: 83.149.1.211 ID: 70
IP: 83.149.1.211 ID: 3
IP: 83.149.1.211 ID: 2
hooligan, GROUP BY `поле`
как можно по данным из таблицы 'iphistory' по user_id из таблицы 'users' вывести имя?
Сейчас:
$req = mysql_query("SELECT * FROM `iphistory` WHERE `ip` = '".$search."' GROUP BY `user_id` DESC LIMIT $start, $kmess");
Результат:
IP: 83.149.1.211 ID: 70
IP: 83.149.1.211 ID: 3
IP: 83.149.1.211 ID: 2
надо:
IP: 83.149.1.211 ID: 70 login: Алексей
IP: 83.149.1.211 ID: 3 login: Гена
IP: 83.149.1.211 ID: 2 login: Света
как сделать так?
$req = mysql_query("SELECT iphistory.*, users.login
FROM iphistory
LEFT JOIN users
ON iphistory.user_id = users.id
WHERE iphistory.ip = '".$search."'
GROUP BY iphistory.user_id
ORDER BY iphistory.user_id
DESC LIMIT ".$start.", ".$kmess.";");
типа того
блин чет не показывает вообще результат...
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `iphistory` WHERE `ip` = '" . $search . "'"), 0);
if ($total) {
$req = mysql_query("SELECT iphistory.*, users.login
FROM iphistory
LEFT JOIN users
ON iphistory.user_id = users.id
WHERE iphistory.ip = '".$search."'
GROUP BY iphistory.user_id
ORDER BY iphistory.user_id
DESC LIMIT ".$start.", ".$kmess.";");
while ($res = mysql_fetch_assoc($req)) {
echo $i % 2 ? '<div class="list2">' : '<div class="list1">';
$link = '<b>IP:</b> ' . $res['ip'] . '';
echo '<span class="gray"> '.$link.'<b> ID:</b><a href="../str/anketa.php?id='.$res['user_id'].'"> '.$res['user_id'].'</a> login: '.$res['login'].'</span></div>';
++$i;
}
}
это примерный код.
я не знаю какая там структура таблицы юзеров
Вот так работает:
$req = mysql_query("SELECT `iphistory`.*, `users`.`name`
FROM `iphistory` LEFT JOIN `users` ON `iphistory`.`user_id` = `users`.`id`
WHERE `iphistory`.`ip` = '".$search."'
GROUP BY `iphistory`.`user_id` DESC LIMIT $start, $kmess");
спасибо за помощь!