2014-11-15 3 views
0

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

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

ArticleID DeveloperID

---- 1 ---- ------- 1 -------

---- 1 ---- ------- 4 -------

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

if (isset($DEVid)){ 
    foreach($DEVid as $DeveloperArray){ 
    mysqli_query($dbc, "INSERT INTO temp_article_developer (ArticleID, DeveloperID) 
        VALUES ('$ArticleID', '$DEVid')"); 
    } 
} 

Девид устанавливается с помощью множественного выбора поля ввода

$DEVid = $_POST['SelectDevelopers']; 

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

$qGetNewArticleID = "SELECT ArticleID FROM temp_article WHERE ArticleTitle='$TTL'"; 
$rGetNewArticleID = @mysqli_query($dbc, $qGetNewArticleID); 
$GetArticleIDRow = mysqli_fetch_array($rGetNewArticleID, MYSQLI_ASSOC); 
$ArticleID = $GetArticleIDRow['ArticleID']; 

в настоящее время код я использовал ничего в базу не вставить. Поле «Идентификатор статьи» определенно заполнено, поскольку я проверил его с помощью другой (более простой) вставки, которая позволяет только одно выбранное поле. $ _POST ['SelectDevelopers'] также определенно заполняется, поскольку он повторно выбирает все выбранные значения при возврате формы в случае ошибки. Я просто не могу заставить его вставлять значения.

+0

Вы проверили ошибки? –

+0

Единственные ошибки, которые я получаю, - это дублирующиеся настройки DBHOST и остальных, но если я предотвращу это дублирование, мой запрос не будет запущен вообще. Как бы то ни было, несмотря на двойную настройку БД, она работает точно так, как ожидалось (за исключением этой неудачной вставки). – Spratters53

ответ

1

В процедурном стиле mysqli_query нужна строка соединения в качестве первого аргумента

От Php.net

mixed mysqli_query (mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ]) 

Вы отсутствуют строки подключения в вашем запросе вставки.

Update:

foreach($DEVid as $DeveloperArray){ 

    mysqli_query($dbc, "INSERT INTO temp_article_developer (ArticleID, DeveloperID) 
        VALUES ('$ArticleID', '$DeveloperArray')"); 
    } 

Пожалуйста, проверьте его.

+0

Добавил, что это не имело никакого значения, тот же результат (без вставки) – Spratters53

+0

@ Spratters53, пожалуйста, проверьте обновленный ответ. – fortune

+0

Увы, до сих пор нет разницы. – Spratters53

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