ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

25.04.2009, 16:24
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Есть поле поиска.
В него вбивают запросы,и получают ответы.
ТАк вот,нужно вести статистику запросов,с легким выводом самых частых запросов,например 5.
И вот еще, какую кодировку нужно выставить в mysql, чтобы она корректно отображала руские символы? Чтото такой писец получился с символами?
|
|
|

25.04.2009, 16:37
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 86
Провел на форуме: 994199
Репутация:
258
|
|
2m0Hze
Добавьте численное поле[Queries],при каждом запросе проверяйте,есть ли данный запрос, если есть прибавляйте к этому значению 1[Queries]
По поводу кодировки:
Пользователь вводит запрос в произвольной кодировке, в зависимости от браузера,сервер преобразовывает и передает mysql=> такая же, как и у сервера,и интерпретатора(chcp1251)
|
|
|

25.04.2009, 16:39
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Вот именно в MySQL кодировка краказяблями,странно,раньш е все работало отлично 
|
|
|

25.04.2009, 16:42
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Решил делать както так:
PHP код:
$query = 'soad';
$check = mysql_query("SELECT * FROM stats WHERE name='$query'");
if(mysql_num_rows($check) > 0){
$assoc = mysql_fetch_assoc($check);
$update = mysql_query("UPDATE stats SET num='".$assoc['num']++."' WHERE id='".$assoc['id']."'");
}else{
$add = mysql_query("INSERT INTO stats VALUE(NULL,'".$query."','1')");
}
КТо подскажет посчет синтаксиса UPDATE, пользуюсь первый раз )
|
|
|

25.04.2009, 16:52
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Нашел свою ошибку,теперь собственно вопрос.
Как вытащить самые большие значения из бд?
Предположим есть в столбце num значения:
1,5,7,3,8,12.
Нужно вытащить 3 самых больших.ПОнятно что LIMIT, но вот что дальше?(
|
|
|

25.04.2009, 16:53
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
Сообщение от LASS0
Подскажите как сделать, чтобы перед записью ip адреса в БД, сначало была проверка: если такой ip в столбце уже есть, то запись не делалась.
PHP код:
<?
$ip = $_SERVER['REMOTE_ADDR'];
include("connect.php");
$link = mysqli_connect(SERVER, USERNAME, PASSWORD, DBNAME);
$result=mysqli_query($link,
"INSERT INTO user (ip) VALUES ('$ip')");
mysqli_close($link);
?>
Придай полю ip св-во unique, и просто добавляй в таблицу, ненужное будет отсеиваться
|
|
|

25.04.2009, 17:00
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 86
Провел на форуме: 994199
Репутация:
258
|
|
2m0Hze
desc
|
|
|

25.04.2009, 17:06
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от erihtoney
2m0Hze
desc
Хотелось бы поточнее с примером,потому что документация мало чем помогает мне 
|
|
|

25.04.2009, 17:22
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
m0Hze Во-первых, есть соседняя тема с вопросами про MySQL. Во-вторых - не надо создавать лишнюю таблицу. В-третьих, запрос будет такой:
Код:
SELECT `zapros`, count(*) AS `cnt` FROM `table` GROUP BY `ipaddress` ORDER BY `cnt` DESC LIMIT 10;
Итого - zapros - имя столбца, через запятую можно еще добавить.
count(*) as `cnt` - количество строк
table - имя таблицы
GROUP BY `ipaddress` - по какому столбцу объединять
LIMIT 10 - 10 строк в выводе будет
|
|
|

25.04.2009, 17:23
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 86
Провел на форуме: 994199
Репутация:
258
|
|
PHP код:
SELECT column,...
[FROM table WHERE definition]
[ORDER BY col_name [ASC | DESC], ...]
[LIMIT [offset], rows]
Сообщение от mysql
Ключевое слово ORDER BY сортирует строки запросов по столбцу col_name в прямом (ASC) или обратном порядке (DESC).
Сообщение от mysql2
Для того чтобы сортировка производилась в обратном порядке, в утверждении ORDER BY к имени заданного столбца, в котором производится сортировка, следует добавить ключевое слово DESC (убывающий). По умолчанию принята сортировка в возрастающем порядке, который можно задать явно при помощи ключевого слова ASC.
Пример:
PHP код:
SELECT * FROM ORDER BY `Queries` DESC LIMIT 0 , 5
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|