DarkDaNTe » 2009.10.31 21:01

Например у нас есть массив $clicks. Как проверить есть ли содержимое переменной, допустим, $var в нём?

AND » 2009.10.31 21:25

Код:

1
2
3
if(in_array($var, $clicks)) {
echo 'Значение "'.$var.'" присутствует в массиве';
}
Gemorroj » 2009.10.31 21:33

еще isset

DarkDaNTe » 2009.11.01 16:53

спс. А я писал if(in_array($var, $clicks) == false)

DarkDaNTe » 2009.11.01 17:18

Я вот ничего не пойму. По моему все написано правильно.
Массив $clicks_arr1:

Код:

1
2
3
4
5
Array
(
[0] => 2
[1] => 5
)

Массив $clicks_arr2:

Код:

1
2
3
4
5
Array
(
[0] => 2
[1] => 1
)

Код:

Код:

1
span style="color: #0000BB"><?phpforeach($users as $val){$query = mysql_query('SELECT * FROM `plosh` WHERE `id`='.$val.' AND `id`!='.$user['id'].'');while($ar = mysql_fetch_assoc($query)){if(!in_array($ar['id'], $clicks_arr1) and !in_array($ar['nom'], $clicks_arr2)){echo 'ЕСТЬ';}}else{echo 'НЕТ';}}?>

Добавлено спустя   2 минуты  10 секунд:
В первом массиве - ИД пользователей, во втором - ИД их площадок

Gemorroj » 2009.11.01 18:23

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$in = '';
foreach ($users as $val) {
if ($val != $users['id']) {
$in .= $val . ',';
}
}
 
$q = mysql_query('SELECT * FROM `plosh` WHERE `id` IN (' . rtrim($in, ',') . ')');
 
while ($arr = mysql_fetch_assoc($q)) {
if (isset($clicks_arr1[$arr['id']]) || isset($clicks_arr2[$arr['nom']])) {
echo 'ЕСТЬ';
} else {
echo 'НЕТ';
}
}
DarkDaNTe » 2009.11.01 20:44

А что значит этот запрос?

Код:

1
$q = mysql_query('SELECT * FROM `plosh` WHERE `id` IN (' . rtrim($in, ',') . ')');

Добавлено спустя   3 минуты  39 секунд:
Что-то как-то оно не так работает)
Добавлено спустя   5 минут  8 секунд:
Меня вот это:

Код:

1
if ($val != $users['id'])

смущает. Какое содержимое $users['id']?

Gemorroj » 2009.11.01 20:53

Без понятия, брал на основе твоего

`id`!='.$user['id']

А запрос значит что долбить запросы в цикле большой грех. Собери все нужные айдишники вместе и отправь 1 запрос в БД.

DarkDaNTe » 2009.11.01 21:11

ааа) Там просто users, а у меня user, понял. Ошибочко). Понял

DarkDaNTe » 2009.11.01 21:23

Короче это все дело должно выводить ссылку или не выводить в зависимости от того кликали ли по ней.
При клике в базу записывается ID того юзера, по чьей ссылке ты нажимал и ID его площадки.
Извлекаем все наши клики:

Код:

1
$res1 = mysql_query("SELECT * FROM `clicks` WHERE `who`='$user[id]'");

Потом забиваем все это в массивы.

Код:

1
span style="color: #0000BB"><?phpwhile($click = mysql_fetch_assoc($res1)){$clicks_arr1[] = $click['whom'];$clicks_arr2[] = $click['pl'];}?>

И теперь нам надо все проверить. Но блин, оно не хочет проверять... Все ли правильно делаю?

Gemorroj » 2009.11.01 21:53

а в plosh какие данные? подозреваю что тут нужен SQL подзапрос, а не php код.

DarkDaNTe » 2009.11.01 22:33

В plosh такие данные как id юзера, к которому относится площадка, адрес площадки, название ссылки, инфа о модерации площадки, о браузерах, которым доступна.

Gemorroj » 2009.11.01 22:50

а откуда берутся данные о том, что этот пользователь уже кликнул по ссылке?

DarkDaNTe » 2009.11.01 23:56

а в посте номер 10 указаны два массива с данными и описано по какому принципу они заданы
Добавлено спустя    2 секунды:
а в посте номер 10 указаны два массива с данными и описано по какому принципу они заданы

Gemorroj » 2009.11.02 10:38

хоть застрелись, не понимаю я структубы БД твоей. выгрузи дамп структуры с описаниме полей.
в любом случае, тебе нужно минимум PHP и максимум SQL в данном случае.

DarkDaNTe » 2009.11.02 10:52

ок. да я сам зачудил базу такую, что ппц

DarkDaNTe » 2009.11.02 12:27

Кинул в личку дамп

DarkDaNTe » 2009.11.02 20:06

Gemorroj, ау))

Gemorroj » 2009.11.02 21:14

позже. оч занят. с тоей бд нужно разбираться.

DarkDaNTe » 2009.11.02 21:16

Хорошо=) Все равно спс

DarkDaNTe » 2009.11.03 14:22

Я в дампе все раскомментил

Gemorroj » 2009.11.03 21:54

посмотрел, вобщем могу тебе только посоветовать полностью изменить структуру БД.
Еще почитай об индексах, типах данных, нормализации/денормализации структуры.
У тебя даже нету ID площадок.
Добавлено спустя   1 минуту  3 секунды:
P.S. SQL стандарт поддерживает добавление комментариев прямо в таблицы. Пользуйся ими.

DarkDaNTe » 2009.11.04 09:38

Да.. Вчера насчет этого поговорил с морганом. короче решил моддить другой клуб. т.к в этом время генерации при 15 юзерах ~2сек. а что при 1000 будет? и коды встречаются такие, как я показывал. запросы в запросах в циклах