#1 2009.10.31 21:01

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Поиск в массиве

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

Неактивен

#2 2009.10.31 21:25

AND
Участник
Зарегистрирован: 2009.01.23
Сообщений: 87
Карма: 11
Профиль Веб-сайт

Re: Поиск в массиве

Код:

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

Неактивен

#3 2009.10.31 21:33

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Поиск в массиве

еще isset

Неактивен

#4 2009.11.01 16:53

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Re: Поиск в массиве

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

Неактивен

#5 2009.11.01 17:18

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Re: Поиск в массиве

Я вот ничего не пойму. По моему все написано правильно.
Массив $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 секунд:
В первом массиве - ИД пользователей, во втором - ИД их площадок

Неактивен

#6 2009.11.01 18:23

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Поиск в массиве

Код:

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 'НЕТ';
}
}

Неактивен

#7 2009.11.01 20:44

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Re: Поиск в массиве

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

Код:

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

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

Код:

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

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

Неактивен

#8 2009.11.01 20:53

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Поиск в массиве

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

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

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

Неактивен

#9 2009.11.01 21:11

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Re: Поиск в массиве

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

Неактивен

#10 2009.11.01 21:23

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Re: Поиск в массиве

Короче это все дело должно выводить ссылку или не выводить в зависимости от того кликали ли по ней.
При клике в базу записывается 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'];}?>

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

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.012 s