Вставка запросов INTO с использованием предложения WHERE

У меня есть проблема по запросу INSERT INTO,
В регистрационной форме, когда пользователь вводит имя пользователя и выбирает отдел / центр в качестве стипендии,
Я хочу вставить это имя пользователя в таблицу стипендию.

То, что я пытался это;

$query14 = "INSERT INTO bursary (UserName) VALUES
('$UserName') WHERE DepartCent='Bursary'";
$result14=mysql_query($query14);

Моя таблица называется стипендия, и это выглядит так;

UserID      UserName

1        (        ) <---- I want only UserName that choose department/center as bursary

Пожалуйста, кто-нибудь, помогите мне решить это, оцените это.

-2

Решение

Запросы INSERT подразумевают добавление данных, которых там еще нет. Если вы хотите вставить значение, полученное из запроса, вам нужно использовать фактический запрос, чтобы получить его. Предложение WHERE не выполняется, потому что нет строки для проверки, пока вы не вставите ее.

На самом деле недостаточно информации, чтобы понять, что вы пытаетесь сделать, но если мы просто перейдем к этой части вашего вопроса:

«Я хочу только имя пользователя, которое выберет отдел / центр в качестве стипендии»

Тогда вы, вероятно, ищете INSERT..SELECT (предполагается, что вы уже вставили данные в какую-то другую пользовательскую таблицу ‘your_user_table’)

INSERT INTO bursary(UserName)
SELECT UserName from your_user_table
WHERE DepartCent='Bursary';
0

Другие решения

Вы также можете:

  • вставить новые строки в таблицу базы данных
  • обновить существующие строки в таблице базы данных

Только когда вы пытаетесь изменить значения существующих строк, имеет смысл указать предложение WHERE, чтобы база данных знала, какие значения вы хотите изменить.
РЕДАКТИРОВАТЬ: Не могли бы вы объяснить еще раз, что именно вы пытаетесь достичь? Вы хотите вставить только некоторых пользователей, заполняющих вашу форму? А именно те, которые выбирают стипендию в качестве своего отдела?
Почему бы вам не изменить структуру таблицы на что-то вроде:
Стол ОТДЕЛ:
Название отдела, идентификатор отдела

Таблица USER:
Имя пользователя, идентификатор отдела (внешний ключ к отделу)

РЕДАКТИРОВАТЬ Nr. 2: способ сделать это путем нормализации структуры таблицы. Предположим, произошло одно из следующих событий:

  • Вы хотите добавить дополнительный отдел позже — вам не нужно каждый раз создавать новую таблицу для этого.
  • Вы хотите изменить название отдела — вы хотите переименовать ваши таблицы? измени свой код, … я сомневаюсь, что

Таким образом, путь состоит в том, чтобы спроектировать ваши таблицы таким образом, чтобы они разделяли различные «вещи» в вашей программе. Один тип вещей, с которыми вы работаете — это отделы (стипендии, …), другой тип вещей — это пользователи. В качестве грубой отправной точки попробуйте составить таблицу для каждого и попытаться связать таблицы с помощью так называемых внешних ключей. Прочитайте это так:

  • Каждый отдел имеет уникальный идентификатор отдела
  • Каждый пользователь связан с отделом по этому идентификатору отдела.

Затем вы можете позже присоединиться к этим таблицам, чтобы узнать всех пользователей отдела X, …

Выберите u.userName, d.departmentName от пользователя u INNER JOIN Department
u.departmentId = d.departmentId

Это покажет вам имена всех ваших пользователей и связанных с ними отделаName

0

По вопросам рекламы [email protected]