PHP / MySQL, как я могу выбрать значение из базы данных MySQL? - PullRequest
0 голосов
/ 04 декабря 2009

Мне было интересно, как я могу выбрать значение из базы данных, в которую пользователь только что ввел его, и затем добавить его в другую таблицу mysql, все в том же сценарии, прежде чем сценарий завершится.

Ответы [ 7 ]

2 голосов
/ 04 декабря 2009

Вы, вероятно, ищете оператор insert ... select .

0 голосов
/ 04 декабря 2009

какова структура вашей базы данных? Названия ваших таблиц, столбцов?

0 голосов
/ 04 декабря 2009

Если вы используете доктрина , у вас есть вставленные данные в объект, представляющий таблицу, и, кроме того, у вас есть первичный ключ, назначенный для записи внутри объекта.

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

0 голосов
/ 04 декабря 2009

В модуле PHP MySQL вы обычно выполняете mysql_select_db () для переключения базы данных.

Вы можете вставить свои данные в таблицы в разных базах данных, переключаясь между ними с помощью этой функции.

Однако вы можете вставить данные в любую таблицу любой базы данных (к которой у пользователя есть доступ), добавив префикс имени базы данных к таблице следующим образом:

INSERT INTO test_db.test_table (`column1`,`column2`) VALUES ('abc',123);

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

INSERT INTO `db1`.`myTable` (`column1`,`column2`) SELECT `column1`,`column2` FROM `db2`.`myTable` WHERE `id`= 5

Часть WHERE id должна явно соответствовать идентификатору строки в db2.myTable

0 голосов
/ 04 декабря 2009

Если вы говорите о добавлении значения, которое пользователь только что ввел в форму, к чему-либо, а затем о добавлении этого значения в базу данных, вы должны сделать это в PHP. Нет смысла обращаться к базе данных после того, как вы просто вставили значение для этой цели.

Если я что-то неправильно понимаю, уточните свой вопрос и дайте нам знать, ПОЧЕМУ вы хотите выяснить только что вставленное значение базы данных и выполнить операцию над ним, а не пытаться сделать это до того, как вставить в первый место.

Кроме того, если это довольно простая модификация, рассмотрите возможность использования оператора UPDATE, а не select -> insert.

0 голосов
/ 04 декабря 2009

Как сказал Нэш, вы выполняете выбор.

Но чтобы получить данные из строки, которую только что ввел пользователь, вам потребуется:

mysql_insert_id()

Который захватывает последний вставленный идентификатор (предполагается, что у вас есть столбец идентификатора приращения)

Таким образом, предполагая, что вы просто ввели его имя и фамилию в форму, вы добавили бы его имя и фамилию в базу данных (что, как я полагаю, вы знаете, так как заголовок этого вопроса «ВЫБРАТЬ значение из базы данных MySQL») ), вы можете получить то, что он только что ввел:

$last_id = mysql_insert_id();

Если в этой таблице еще нет строк, то это вернет 1. $ last_id теперь равен 1 (одному).

На выбор:

SELECT * FROM users WHERE userID = "$last_id"

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

0 голосов
/ 04 декабря 2009

Некоторое учебное пособие, на которое вы, возможно, захотите взглянуть: (взято из Google)

http://www.phpf1.com/tutorial/php-mysql-tutorial.html

Теоретически вы выполняете выборку, берете нужные данные и выполняете вставку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...