Как я могу сделать переключатель для “Другого - укажите?”

Вы можете использовать аналитическую функцию COUNT, которая не потребует от вас самостоятельного объединения на вашем столе.

Oracle Setup :

CREATE TABLE USER_EVENTS ( ID, EVENT_TYPE, EVENT_DATE, USER_ID ) AS
SELECT 1, 'USER_DELETED',    DATE '2019-01-10', 5301 FROM DUAL UNION ALL
SELECT 2, 'USER_ACTIVATED',  DATE '2019-01-09', 5301 FROM DUAL UNION ALL
SELECT 3, 'USER_DELETED',    DATE '2019-01-05', 5302 FROM DUAL UNION ALL
SELECT 4, 'USER_ACTIVATED',  DATE '2019-01-11', 5302 FROM DUAL UNION ALL
SELECT 5, 'USER_DELETED',    DATE '2019-01-01', 5288 FROM DUAL UNION ALL
SELECT 6, 'USER_DELETED',    DATE '2019-01-02', 5287 FROM DUAL UNION ALL
SELECT 7, 'USER_CREATED',    DATE '2018-12-01', 5211 FROM DUAL UNION ALL
SELECT 8, 'USER_NOTE',       DATE '2018-12-01', 5211 FROM DUAL;

Запрос 1 :

SELECT *
FROM   (
  SELECT u.*,
         COUNT( CASE event_type WHEN 'USER_ACTIVATED' THEN 1 END )
           OVER (
             PARTITION BY user_id
             ORDER BY event_date
             ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING
           ) AS num_activated
  FROM   USER_EVENTS u
)
WHERE  num_activated > 0
AND    event_type = 'USER_DELETED';

Результаты :

ID | EVENT_TYPE   | EVENT_DATE | USER_ID | NUM_ACTIVATED
-: | :----------- | :--------- | ------: | ------------:
 3 | USER_DELETED | 05-JAN-19  |    5302 |             1

Запрос 2 :

Если вы просто хотите, чтобы затронутые USER_ID с, вы можете использовать GROUP BY и HAVING:

SELECT USER_ID
FROM   USER_EVENTS
GROUP BY USER_ID
HAVING MIN( CASE EVENT_TYPE WHEN 'USER_DELETED' THEN EVENT_DATE END )
         < MIN( CASE EVENT_TYPE WHEN 'USER_ACTIVATED' THEN EVENT_DATE END )

[ 1117] Результаты :

| USER_ID |
| ------: |
|    5302 |

db <> fiddle здесь

6
задан barfoon 2 January 2009 в 16:18
поделиться

3 ответа

1.: К "другому": радио-поле, добавляют a <input type="text" ...> со стилем display:none и только отображают его, когда пользователь выбирает "другой": радио-поле.

Однако я не совсем уверен, работал ли № 2. Вы добрались бы rboption=other от переключателя И rboption=some%20text от текстового поля. Каждый будет обычно перезаписывать другой, но это не уверено который (читайте: зависит от положения на странице, браузере и фазе луны).
Безусловно, сделайте отличающееся имя текстового поля и только обработайте его когда rboption == 'other' (как Соленый сказал),

6
ответ дан 8 December 2019 в 05:58
поделиться

Почему не только добавляют, что другое имя приписывает входу и только проверяет его, если другой переключатель был установлен?

8
ответ дан 8 December 2019 в 05:58
поделиться

Вот как я это сделал:

<input type="radio" name="phone" value="313-375-2151">Taylor <br>
<input type="radio" name="phone" value="555-444-1234">OverheadHts <br>
<input type="radio" name="phone" value="555-333-1234">Smith Ctr <br>
<input type="radio" name="phone" value="444-344-1234">Mainsville<br>
<input type="radio" name="phone" value="other">Other:
    <input type="text" name="phone-other" size="14">

А затем, когда вы обрабатываете форму:

$phone = mysql_real_escape_string($_POST['phone']);
if ($phone =='other'){
  $phone = mysql_real_escape_string($_POST['phone-other']);
}

и т. Д.

8
ответ дан 8 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: