Avatar billede Smitche Praktikant
01. oktober 2012 - 14:21 Der er 1 kommentar og
1 løsning

HJÆLP! Dropdown liste med valgmuligheder fra en tabel, der skal gemmes i ny tabel.

Jeg er i gang med at lave et skoleprojekt. Her skal jeg lave en bogdatabase.

Jeg har følgende tabeller: book_tbl, author_tbl, author_book_tbl, status_tbl, type_tbl, category_tbl

Her vil jeg gerne kunne oprette en bog hvor jeg vælger værdier fra en anden tabel via en dropdown liste som fx hvilken type bog det er og dette skal så gemmes i book_tbl hvor der er en tilhørende foreign key til type_tbl. Samtidig skal jeg kunne vælge en forfatter til bogen via en dropdownliste igen, og automatisk skal der oprettes et book_id og author_id i author_book_tbl.

Her er min kode med forms.

<!--Oprettelse af bog-->
    <h3>Opret bog</h3>
    <form action="insert.php" method="post">
        <input type="text" name="isbn" id="isbn" class="form_text" placeholder="ISBN" required/> <br> <br>
        <input type="text" name="title" id="title" class="form_text" placeholder="Title" required/> <br> <br>
        <input type="text" name="year" id="year" class="form_text" placeholder="Year" required/> <br> <br>
        <input type="text" name="price" id="price" class="form_text" placeholder="Price" required/> <br> <br>
        <input type="text" name="description" id="description" class="form_text" placeholder="Description" required/> <br> <br>

        <?php 
        mysql_connect('localhost', 'Test', 'Test');
        mysql_select_db('bookstore');

        $sql = "SELECT status FROM status_tbl";
        $result1 = mysql_query($sql);

        echo "<select name='status_id'>";
        while ($row = mysql_fetch_array($result1)) {
            echo "<option value='" . $row['status_id'] ."'>" . $row['status_id'] ."</option>";
        }
        echo "</select>";
        ?><br>

        <?php
        mysql_connect('localhost', 'Test', 'Test');
        mysql_select_db('bookstore');

        $sql = "SELECT type FROM type_tbl";
        $result2 = mysql_query($sql);

        echo "<select name='type_id'>";
        while ($row = mysql_fetch_array($result2)) {
            echo "<option value='" . $row['type_id'] ."'>" . $row['type_id'] ."</option>";
        }
        echo "</select>";
        ?><br>

        <input type="text" name="category" id="category" class="form_text" placeholder="Category"required/> <br> <br>
       
        <?php 
        mysql_connect('localhost', 'Test', 'Test');
        mysql_select_db('bookstore');

        $sql = "SELECT first_name, last_name FROM author_tbl";
        $result3 = mysql_query($sql);

        echo "<select name='author'>";
        while ($row = mysql_fetch_array($result3)) {
            echo "<option value='" . $row['first_name'] . $row['last_name'] ."'>" . $row['first_name'] . ' '. $row['last_name'] ."</option>";
        }
        echo "</select>";
        ?><br>

        <input type="submit" value="Opret bog"/>
    </form>

Her er min insert.php
<?php
require_once('connect.inc.php');
$conn = dbConnect('pdo') or die('no connection');

//Bog
$isbn= $_POST['isbn'];
$title= $_POST['title'];
$year= $_POST['year'];
$price= $_POST['price'];
$description= $_POST['description'];
$type= $_POST['type'];
$status= $_POST['status'];

//Forfatter
$first_name= $_POST['first_name'];
$last_name= $_POST['last_name'];
$author= $_POST['author'];

//Kategori
$category=$_POST['category'];

echo '<a href="index.php"><h3>Tilbage</h3></a>';

if (isset($_POST['isbn'])){

    $sqlquery ="INSERT INTO category_tbl(category)
    VALUES ('$category')";
    $result = $conn->query($sqlquery) or die('Noget gik galt med category');

    $sqlquery2 ="INSERT INTO book_tbl(isbn, title, year, price, description, type_id, status_id, category_id)
    VALUES ('$isbn', '$title', '$year', '$price', '$description', '$type', '$status', LAST_INSERT_ID())";
    $result = $conn->query($sqlquery2) or die('Noget gik galt med book');
    echo "Bog er oprettet";


}else{
    echo "Fejl";
}

Når jeg gør brug af disse dropdown lister kan jeg ikke få oprette en bog. Så det er her:
"$sqlquery2 ="INSERT INTO book_tbl(isbn, title, year, price, description, type_id, status_id, category_id)
    VALUES ('$isbn', '$title', '$year', '$price', '$description', [i]'$type', '$status'[i], LAST_INSERT_ID())";
    $result = $conn->query($sqlquery2) or die('Noget gik galt med book');" - med kursiv at jeg gør noget forkert?

Derudover ved jeg ikke hvordan jeg automatisk få sat author_book_tbl så jeg får tilknyttet en forfatter.

Tak på forhånd! :)


?>
Avatar billede Smitche Praktikant
01. oktober 2012 - 14:25 #1
[i]'$type', '$status'[i] - står selvfølgelig ikke således med [i] i min kode - var meningen at jeg ville fremhæve det med kursiv i indlægget, da jeg tror det er her fejlen ligger, men ved ikke hvad jeg skal skrive her.
Avatar billede Smitche Praktikant
21. december 2012 - 18:52 #2
Lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester