как исключить select

ecspl01t

Новичок
Доброго времени суток!
Есть select, при том что id_team такого нету в бд
PHP:
<select>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
есть бд:

d_discipline = селекту
такая ситуация, команда под id_team: 1 имеет в бд d_discipline 1 и 2 так вот чтобы эти 1 и 2 не отображались в самом селекте, а только то, что осталось..
PHP:
<select>
  <option value="3">3</option>
</select>
простите что криво пояснил, голова не варит уже.. спрашивайте что не понятно.
 

WMix

герр M:)ller
Партнер клуба
ничего не понятно! какая связь между value="3" и id_team: 4 ? что значит сие "Есть select, при том что id_team такого нету в бд"?
 

ecspl01t

Новичок
например, команда id_team:5, ее нету в бд, тот юзер который админ этой команды под номером 5 он видит полный select:
PHP:
<select>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
Когда появилась записать, например,
id_team:5
d_discipline:1
то на той странице где он видел весь select, теперь он должен увидеть это:
PHP:
<select>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
Первый селект убрался так как он есть в бд (id_team:5 d_discipline:1) и так далее...
если в бд есть id_team:5 d_discipline:2 то убираем селект с value=2, если есть d_discipline:3 то value=3 убираем...
 

WMix

герр M:)ller
Партнер клуба
скинь create table c тестовыми данными
 

ecspl01t

Новичок
я сначала подумал про это)
PHP:
--
-- Структура таблиці `t_d`
--

CREATE TABLE IF NOT EXISTS `t_d` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_team` int(11) NOT NULL,
  `d_discipline` int(14) NOT NULL,
  `d_country` varchar(20) NOT NULL,
  `d_access` varchar(255) NOT NULL,
  `d_date_reg` varchar(255) NOT NULL,
  `d_col` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ;

--
-- Дамп даних таблиці `t_d`
--

INSERT INTO `t_d` (`id`, `id_team`, `d_discipline`, `d_country`, `d_access`, `d_date_reg`, `d_col`) VALUES
(40, 4, 1, 'ua', 'cj1i9F8s', '2013,10,01,22,06,55', 0),
(36, 1, 1, 'ua', 'wKVgNv3p', '2013,10,01,19,20,11', 0),
(37, 1, 2, 'ua', 'D3YItryM', '2013,10,01,19,20,40', 0);
 

WMix

герр M:)ller
Партнер клуба
PHP:
select distinct t1.d_discipline /* выбрать все дисциплины */
from t_d t1
left join t_d t2 on t2.id_team=$selected_team /* для выбранного тима */ and t1.d_discipline=t2.d_discipline
where t2.d_discipline is null /* кроме существующих */
 

ecspl01t

Новичок
ничего не понял, сдедал пока так:
PHP:
$myteam_d1 = mysql_fetch_array(mysql_query("SELECT * FROM t_d WHERE d_d='1' AND id_t='$_GET[id]'",$db));
$myteam_d2 = mysql_fetch_array(mysql_query("SELECT * FROM t_d WHERE d_d='2' AND id_t='$_GET[id]'",$db));
$myteam_d3 = mysql_fetch_array(mysql_query("SELECT * FROM t_d WHERE d_d='3' AND id_t='$_GET[id]'",$db));
			if($myteam_d1==true){$game1='';}else{
				$game1='<option value="1">дисц1</option>';
			}
			if($myteam_d2==true){$game2='';}else{
				$game2='<option value="2">дисц2</option>';
			}
			if($myteam_d3==true){$game3='';}else{
				$game3='<option value="3">дисц3</option>';
			}
 

WMix

герр M:)ller
Партнер клуба
если бы все возможные дисциплины были в базе (а выбрал я их этим запросом)
PHP:
select distinct t1.d_discipline /* выбрать все дисциплины */
from t_d t1
то оставить не использованные можно было бы с помощью
PHP:
left join t_d t2 on t2.id_team='.$_GET['id']'. /* для выбранного тима */ and t1.d_discipline=t2.d_discipline
where t2.d_discipline is null /* кроме существующих */
а вывести select-tag так
PHP:
while ($row = mysql_fetch_assoc($result)) {
   echo '<option value="'.$row['d_discipline'].'">дисц '.$row['d_discipline'].'</option>';
}
это даст возможность добавить новую дисциплину к примеру и не меняя программу ее использовать!
 
Последнее редактирование:

ecspl01t

Новичок
WMix
спасибо за ответы! позже попробую, дисциплины есть в бд я что-то подобное хотел сделать, чтобы было гибко...
 
Сверху