Cześć,
temat może nie trafiony ale nic innego nie przyszło mi do głowy. W razie czego proszę o poprawę.
-
Mam tabelę o nazwie:
category
. W niej 2 pola -id
orazcategory_name
-
Mam tabelę o nazwie:
forum
. W niej 4 pola -id
,id_category
,category_forum
,description
<form action="pa.php" method="post">
<span class="pogrub">Tworzenie nowej kategorii i forum</span><br/>
<label>Nazwa kategorii:</label><br/>
<input type="text" name="category_name" /><br/>
<label>Nazwa pierwszego forum:</label><br/>
<input type="text" name="topic_forum" /> <br/>
<label>Opis pierwszego forum:</label><br/>
<input type="text" name="description" /> <br/>
<input type="submit" class="submit" name="tworzenie_kategorii"value="Dodaj" /> <br/>
</form>
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$category_name = isset($_POST['category_name']) ? $_POST['category_name'] : false;
$topic_forum = isset($_POST['topic_forum']) ? $_POST['topic_forum'] : false;
$description = isset($_POST['description']) ? $_POST['description'] : false;
try{
$db = new PDO('mysql:host=localhost;dbname=portal', 'root', '',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}catch (PDOException $e){
print "Błąd połączenia z bazą danych!: " . $e->getMessage() . "<br/>";
die();
}
$CategoryID = $db->prepare("SELECT `id` FROM `category` WHERE `category_name` = :topic_forum");
$CategoryID->bindValue(":topic_forum", $topic_forum, PDO::PARAM_STR);
if(!$CategoryID->execute()){
throw new Exception("Wystąpił błąd.!");
}else{
$data_CategoryID = $CategoryID->fetch();
$CategoryID = $data_CategoryID['id'];
}
if (isset($_POST['tworzenie_kategorii']) )
{
$CreateCategory = $db->prepare("INSERT INTO `category` (`category_name`) VALUES(:category_name)" );
$CreateCategory->bindValue(":category_name", $category_name, PDO::PARAM_STR);
if(!$CreateCategory->execute()){
throw new Exception("Wystąpił błąd.!");
}
$CreateForum = $db->prepare("INSERT INTO `forum` (`id_category`, `topic_forum`, `description`) VALUES(:id_category, :topic_forum, :description)" );
$CreateForum->bindValue(":id_category", $data_CategoryID['id'], PDO::PARAM_INT);
$CreateForum->bindValue(":topic_forum", $topic_forum, PDO::PARAM_STR);
$CreateForum->bindValue(":description", $description, PDO::PARAM_STR);
if(!$CreateForum->execute()){
throw new Exception("Wystąpił błąd.!");
}
echo "<script language='javascript'>alert('Kategoria oraz forum zostały dodane!');</script>";
var_dump($CreateCategory);
var_dump($CreateForum);
}
else
{
}
?>
Co chcę zrobić? Chcę zapisać poprzez formularz dostępny w skrypcie dane:
-Do tabeli category
zapisać wartość pobraną do zmiennej $category_name(to się wykonuje)
-Do tabeli forum
zapisać wartość zmiennej $topic_forum oraz $description(to się wykonuje)
-Do tabeli tej co wyżej(w tym samym zapytaniu), czyli forum
zapisać wartość pobranego ID z tabeli category
i zapisanie go w tabeli o nazwie forum
w polu category_id
Chcę w ten sposób powiązać kategorię forum z danym działem forumowym. Wie ktoś jak to naprawić? Całość w zasadzie oscyluje wokół kodu pobierania, który w zasadzie jest ok, lecz nie zapisuje do tabeli danych. Co robię źle?