2012-05-18 4 views
1

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

$insertSQL2 = "INSERT INTO Project_course (Proj_id Cour_id) SELECT Course_id FROM courses WHERE 
Code IN ("; 
foreach ($_POST['CheckboxGroup1'] as $Q){ 
$Q = mysql_real_escape_string($Q); 
$insertSQL2.= "'$Q', "; 
} 
$insertSQL2 = rtrim($insertSQL2, ", "); 
$insertSQL2 .= ")"; 

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

Я знаю, что это было долго наматывается, так что любая помощь будет принята с благодарностью

+0

Вы могли бы указать, где будет происходить «Proj_ID»? Ваш код показывает, как вы строите свой запрос, чтобы вставить связь между этими данными и флажками, о которых вы говорите, но не откуда эти данные? это еще один запрос INSERT? данные по форме? – Toote

+0

Точно. Пожалуйста, предоставьте нам структуру таблицы (конечно, только существенные поля) и структуру формы (то же самое). –

+0

Эта форма позволяет пользователю вводить данные, которые затем сохраняются в табличных проектах. Данные флажка сохраняются в таблице project_course, где он получает идентификатор, связанный с кодом этого флажка, сохраненный как cour_id. Я хочу, чтобы proj_id ссылался на таблицу проекта, поэтому, когда столбец cour_id подан с его данными, proj_id получает идентификатор последней записи в таблице проекта. Например, когда пользователь выбирает все 4 флажка, cour_id присваивается 1 2 3 4 в отдельных строках, и я хочу, чтобы им дали идентификатор из таблицы проекта в столбце proj_id –

ответ

2

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

BTW - первое, что я предлагаю, это оставить чистые функции mysql_ * в пользу PDO. Но это оффтоп.

Во всяком случае - сначала вы, вероятно, запустить что-то вроде

$sql = "INSERT INTO project (col1, col2) VALUES (blah1, blah2)"; 
mysql_query($sql) 

Затем вы можете проверить новый идентификатор проекта просто путем вызова

$projectID = mysql_insert_id(); 

А потом что-то вроде

foreach ($_POST['CheckboxGroup1'] as $key => $val) 
{ 
    $_POST['CheckboxGroup1'][$key] = mysql_real_escape_string($val); 
} 
$sql = "INSERT INTO project_course(project_id, course_id) SELECT ".$projectID.", course_id FROM courses WHERE code IN (".implode(", ", $_POST['CheckboxGroup1']).")"; 

UPDATE - если у вас уже есть проект в таблице проектов, вы можете получить идентификатор проекта несколькими способами. Например, используя SELECT project_id FROM project ORDER BY project_id DESC LIMIT 1.

+0

Спасибо большое, Прошу прощения за долгое время, не отвечая , Это сработало, просто нужно было внести поправки в некоторые из кода. –

Смежные вопросы