[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вставка данных из PHP в MySQL в три таблицы
Snnick
Всем привет. Недавно начал осваивать PHP, сейчас пытаюсь написать маленький блог. Стоит задача вставить данные в таблицы, которые связанны.
Есть таблицы:
1. Пользователи с полями (id, Name, email, text, id_categories(внешний ключ на таблицу с китегориями))
2. Категории с полями (id, categories)
3. Теги с полями (id, tags)
4. Пользователи_теги с полями (id_pers, id_tag) Соотношение многие ко многим.

Создал две функции на добавление данных в таблицы в Таблицу №1(Пользователи) и Таблицу №3(Теги), в Таблицу №2(Категории) данные передаются по внешнему ключу(id_categories) с Таблицы №1
Не получается создать функцию, которая бы добавляла в Таблицу №4(Пользователи_теги) Данные для связки по первичному id Таблицы №1(Пользователи) и Таблицы №3(Теги).
Подскажите кто сталкивался с таким плиз.
Ниже скидываю код.



if (isset($_POST["submit"])){// На отправку постом
$nPost['name'] = $_POST['name'];
$nPost['email'] = $_POST['email'];
$nPost['tags'] = $_POST['tags'];
$nPost['text'] = $_POST['text'];
$nPost['categories'][0] = $_POST['categories'][0];
//var_dump($_POST);
}
if (isset($nPost['tags']) and !empty($nPost['tags'])){
$arrTags = array_unique(explode(', ', $nPost['tags']));
}

$connection = mysqli_connect('localhost', 'root', '') or die('Could not connect: ' . mysqli_error($connection)); // Создаем подключение
mysqli_select_db($connection, 'blog') or die('Could not select database'); //Конектимся к базе данных
$table = 'myblog'; // Загоняем таблицу в переменную
$tableTags = 'tags';
$tableTextTags = 'text_tags';


if (isset($_POST["submit"])){ //Проверяем если начата кнопка то формируем массив
$arr = array('name' => $nPost['name'], 'email' => $nPost['email'], 'text' => $nPost['text'], 'photo' => $files['photo']['name'], 'id_categories' => $nPost['categories'][0]); // Масив из которого будем добавлять значение в базу данных
}

function insert($connection, $table, $arr) { // Создаем функцию
$values = "'{$arr['name']}', '{$arr['email']}', '{$arr['text']}', '{$arr['photo']}', '{$arr['id_categories'][0]}'"; //Формируем значения для запроса и загоняем их в переменную
$keys = array_keys($arr);
$f = implode(', ', $keys);
$qwery = "INSERT INTO {$table} ({$f}) VALUES ($values)"; //Запрос на добавление данных, которые мы берем из массива
$result = mysqli_query($connection, $qwery) or die('Query failed: ' . mysqli_error($connection));
}
// Проверяем если есть все елементы то вставляем их в базу
if (isset($nPost['name']) and $nPost['email'] and $nPost['text'] and $files['photo']['name'] and $nPost['categories']){
insert($connection, $table, $arr);
}
function insertTags($connection, $tableTags, $arrTags) { // Создаем функцию
//Формируем значения для запроса и загоняем их в переменную

foreach ($arrTags as $val){
echo $val.'<br>';
$qwery = "INSERT INTO {$tableTags} (tags) VALUES ('{$val}') ";
echo "$qwery".'<br>';
$result = mysqli_query($connection, $qwery) or die('Query failed: ' . mysqli_error($connection));
}
}

insertTags($connection, $tableTags, $arrTags);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.