Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 1222 Просмотров
*

brigadier

  • Захожу иногда
  • 82
  • 0 / 0
Joomla sql запрос
« : 07.08.2015, 20:35:28 »
всем привет.
может немного не туда темка, админы перекинут если что )

на страницах Joomla нужно сделать проверку IP адреса
если пользователь написал статью с одно го и того же IP выделить его.

вот немного код начал делать, но не работает пока.
есть массив с IP адресом пользователя когда он пишет первый пост.

Код
$query = mysql_query("SELECT pid,ipaddress,
                            CASE
                            when count(*) = 2 then 'ip repeated 2 times'
                            when count(*) = 3 then 'ip repeated 3 times'
                            when count(*) > 3 then 'ip repeated more than 3 times'
                            else 'your IP is unique'
                            end as message
                            FROM posts
                            GROUP BY pid,ipaddress", $conn);
$result = mysql_fetch_array($query);

$blog['User']['ipaddress']; // user IP
echo ? // что нужно вывести ?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Joomla sql запрос
« Ответ #1 : 07.08.2015, 21:11:32 »
Во первых вы подсчитываете айпи адреса, значит нужно группировать по ipaddress вместо pid,ipaddress.
Во вторых у Joomla есть API, в том числе для работы с БД.
В третьих у Joomla нет таблицы posts, разве только в сторонних расширениях может быть
интернет-блог: http://websiteprog.ru
*

brigadier

  • Захожу иногда
  • 82
  • 0 / 0
Re: Joomla sql запрос
« Ответ #2 : 07.08.2015, 22:07:54 »
ну это для примера я написал.
pid - это название темы блога в которой нужно отфильтровать IP адреса.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Joomla sql запрос
« Ответ #3 : 08.08.2015, 02:06:28 »
на страницах Joomla нужно сделать проверку IP адреса
если пользователь написал статью с одно го и того же IP выделить его.
Немного советов
Многие программисты создают поле VARCHAR(15) для хранения IP адреса, даже не задумываясь о том, что будут хранить в этом поле целочисленное значение. 
Если  использовать  INT, то размер поля сократится до 4 байт,  и оно будет иметь фиксированную длину.
Нужно использовать тип UNSIGNED INT, так как IP адрес задействует все  32 бита беззнакового целого.
В запросах можно использовать функцию INET_ATON() для конвертации IP адреса в целое, и INET_NTOA() для обратного процесса. Также есть схожие функции PHP: ip2long() и long2ip().
И не забудьте его сделать индексом. MySQL быстрее работает с числовыми индексами
*

brigadier

  • Захожу иногда
  • 82
  • 0 / 0
Re: Joomla sql запрос
« Ответ #4 : 08.08.2015, 09:42:54 »
Спасибо Фёдор за советы, с выборкой понятно вроде, как сравнить в php выборку и то что уже лежит в таблице $blog['User']['ipaddress']
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Joomla sql запрос
« Ответ #5 : 09.08.2015, 10:17:43 »
Немного советов
Многие программисты создают поле VARCHAR(15) для хранения IP адреса, даже не задумываясь о том, что будут хранить в этом поле целочисленное значение. 
Если  использовать  INT, то размер поля сократится до 4 байт,  и оно будет иметь фиксированную длину.
Нужно использовать тип UNSIGNED INT, так как IP адрес задействует все  32 бита беззнакового целого.
В запросах можно использовать функцию INET_ATON() для конвертации IP адреса в целое, и INET_NTOA() для обратного процесса. Также есть схожие функции PHP: ip2long() и long2ip().
И не забудьте его сделать индексом. MySQL быстрее работает с числовыми индексами
А что делать с IPv6?

Цитировать
INET_ATON(expr)

Given the dotted-quad representation of an IPv4 network address as a string, returns an integer that represents the numeric value of the address in network byte order (big endian).
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Joomla sql запрос
« Ответ #6 : 09.08.2015, 13:19:15 »
А что делать с IPv6?
как вариант
Код: php-brief
$key = sprintf('%u', crc32($ipv6));
из строки целочисленный индекс
inet_ntop() и inet_pton()
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Что хранится в таблице overrider Joomla 3?

Автор web1

Ответов: 2
Просмотров: 224
Последний ответ 04.04.2024, 22:10:48
от web1
reCAPTCHA V2 Google - Для Joomla 3

Автор Alex GOOD

Ответов: 35
Просмотров: 8352
Последний ответ 10.01.2024, 21:41:38
от Vastriet
Joomla 3.10.12 и MySQL 8

Автор designer71

Ответов: 0
Просмотров: 401
Последний ответ 19.10.2023, 11:25:18
от designer71
Почему Joomla не поддерживает формат webp?

Автор Sensession

Ответов: 74
Просмотров: 10671
Последний ответ 03.10.2023, 19:44:42
от fsv
erid в Joomla

Автор newalex

Ответов: 0
Просмотров: 328
Последний ответ 25.09.2023, 18:45:34
от newalex