Javascript.RU

Результаты опроса: Какие еще технологии нужно знать
CMS 12 26.67%
Серверные (Java, PHP, C) 11 24.44%
Библиотеки (jQuery, ExtJS) 10 22.22%
Достаточен хороший JS 12 26.67%
Голосовавшие: 45. Этот опрос закрыт

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 28.01.2011, 13:47
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,578

а что - можно свои ответы? Я так понял задание - Гозару, который обходится листиком sql запросов?
Ответить с цитированием
  #32 (permalink)  
Старый 28.01.2011, 14:15
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

нет, задание в первую очередь тем, кто не знает, как такие вещи делаются. Хотя именно такой вариант, думаю, достаточно редкий
Ответить с цитированием
  #33 (permalink)  
Старый 28.01.2011, 19:54
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 15:43.
Ответить с цитированием
  #34 (permalink)  
Старый 28.01.2011, 20:50
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

для ясности, скажу что хоть твое заявление (mysql вообще можно не учить у меня страничка пожелтевшая валяется на которой выписаны основные запросы) было слишком категоричным, задание - для всех, кто не знает ответа заранее (ну сложно сказать для кого, учитывая, что это не одна из классических задач). Ну и... я подожду
Ответить с цитированием
  #35 (permalink)  
Старый 28.01.2011, 21:08
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 15:44.
Ответить с цитированием
  #36 (permalink)  
Старый 28.01.2011, 21:15
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 15:44. Причина: ps: а чего комментариев не будет, типа - реализация говно, жизнь фуфло или ещё каких-нибудь?
Ответить с цитированием
  #37 (permalink)  
Старый 29.01.2011, 03:26
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

будут, просто во-первых я тоже бываю занят, а во-вторых я не вкурил твою идею с первого раза, поэтому решил отложить ее на попозже

т.е. в таблицу banlist пишется кто забанил (user_id) и кого забанили (ban_id), причем при добавлении пользователя в banlist сразу же вставляется запись с ban_id = 0. А при бане мы должны сначала узнать из таблицы users банил ли этот пользователь раньше (flag_banned = 1). Если банил вставляем в banlist новую запись, иначе обновляем существующую. Но если пользователь A забанил пользователя B, то он не должен видеть пользователя B, а у тебя видит:
Код:
drop table if exists banlist;
create table banlist (user_id int, ban_id int);
insert into banlist values (1, 2), (2, 0);
select user_id from banlist where ban_id != 1 and user_id != 1;
+---------+
| user_id |
+---------+
|       2 |
+---------+
и наоборот, но это у тебя работает. Кроме того, на каждый бан нужно выполнить три запроса select users + insert/update banlist + update users. Не хорошо, теоретически можем потерять данные. Если пользователь отправит 2 запроса бана разных пользователей, тогда один из банов может потеряется. Не уверен, что такая ситуация может возникнуть в real life, но по-крайней мере этого лучше избежать, если есть такая возможность
Ответить с цитированием
  #38 (permalink)  
Старый 29.01.2011, 06:20
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

точнее наоборот тоже не работает
Код:
drop table if exists banlist;
create table banlist (user_id int, ban_id int);
insert into banlist values (1, 2), (1, 3), (2, 0), (3, 0);
select user_id from banlist where ban_id != 2 and user_id != 2;
+---------+
| user_id |
+---------+
|       1 |
|       3 |
+---------+
Ответить с цитированием
  #39 (permalink)  
Старый 29.01.2011, 09:15
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,578

Код:
CREATE TABLE IF NOT EXISTS `users` (
  `idu` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`idu`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Дамп данных таблицы `users`
--

INSERT INTO `users` (`idu`, `name`) VALUES (1, 'a'),(2, 'b'),(3, 'c'),(4, 'd'),(5, 'f'),(6, 'g'),(7, 'k');

CREATE TABLE IF NOT EXISTS `banned` (
  `idu` int(11) NOT NULL,
  `idb` int(11) NOT NULL,
  PRIMARY KEY (`idu`,`idb`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Дамп данных таблицы `banned`
--

INSERT INTO `banned` (`idu`, `idb`) VALUES (2, 3),(3, 4),(3, 5),(4, 2);

-- Запрос

SELECT u.idu
FROM users u
WHERE u.idu != $idu
AND u.idu NOT IN
  (
    SELECT IF(b.idu = $idu, b.idb, b.idu)
    FROM banned b
    WHERE b.idu = $idu OR b.idb = $idu
  )
ORDER BY RAND()
LIMIT 1

Последний раз редактировалось micscr, 31.01.2011 в 14:04.
Ответить с цитированием
  #40 (permalink)  
Старый 29.01.2011, 09:21
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,578

Сообщение от Gozar
ps: а чего комментариев не будет, типа - реализация говно, жизнь фуфло или ещё каких-нибудь?
Ты делаешь запрос к одной таблице(banlist), т.е. предполагаешь, что в этой таблице обязательно встречаются id-шники всех юзверей?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
помогите со js скриптом поиска по текстовой базе MorganStels Ваши сайты и скрипты 4 15.06.2010 10:03
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28
Самая лучшая книга по JS? ulandj Оффтопик 2 06.04.2009 11:35