2009-08-11 11 views
0

einfügen Ich habe 3 Tabellen (Schauspieler, Kategorien, actor_cats) in meinem db.Werte aus Kontrollkästchen in Tabelle mit PHP + Mysqli

Ich verwende ein Formular, um neue Informationen in die Datenbank (mysql) einzufügen. Die meisten Informationen gehen in die Tabelle der Akteure. Aber in einem Label "Kategorien", habe ich einen Checkbox-Eingangstyp, mit 3 Feldern, die ich aus der Kategorien-Tabelle [Aktion (id1), Komödie (id2), Drama (id3)] bekomme. Ich möchte diese Informationen in meine actor_cats-Tabelle einfügen. Was ich tun möchte, ist einen neuen Akteur in der Akteurs-Tabelle zu schaffen, und auch die Checkbox-Auswahl (möglicherweise alle 3 Optionen) in der actors_cats-Tabelle einzufügen. Diese Tabelle als Schauspieler-ID und die Kategorien-ID, also was ich will so etwas wie dieses wäre:

Tabelle actor_cats

Reihe 1 | Schauspieler (1) | kategoriesid (1)

Zeile 2 | Schauspieler (1) | categoriesid (2)

als Beispiel ...

wie kann ich diese mysqli verwenden erreichen?

danke im voraus!

Ich kann immer noch nicht in die actor_cats Tabelle schreiben. Das ist, was ich tue:

// Nach dem neuen Schauspieler Einfügen

$jid = $mysql->insert_id; 

if (isset($_POST['cats'])) { 
$cats = $_POST['cats']; 
} else { 
$cats = array(); 
} 
$numCats = 0; 
foreach ($cats as $catID) { 

$cats_sql = "INSERT INTO actor_cats VALUES(?,?)";  
$stmt = $mysql->stmt_init(); 

if ($stmt->prepare($cats_sql)) { 
$stmt->bind_param('ii', $jid, $catID); 
$stmt->execute(); 

    if ($ok) { 
     $numCats = $numCats + 1; 
    } else { 
     echo "<p>Error inserting $catID: " . 
      $mysql->error . '</p>'; 

    } 
    } 

<?php 
else: 
$cats = 'SELECT id, type FROM categories'; 
$stmt = $mysql->prepare($cats); 
$stmt->execute(); 
$stmt->bind_result($catid,$cattype); 

>

Und in meiner Form in der Checkbox Bereich, hole ich meine Kategorien Tabelle und die Werte bekommen? , also wenn ich das Formular absende, würde meine Auswahl eingefügt werden

//excerpt from form 
<label>Category:</label><br /> 
<?php while($row = $stmt->fetch()) : ?> 
    <input type="checkbox" name="cats" value="<?php echo $catid; ?>" /><?php echo $cattype; ?> 
<br /><br /> <?php endwhile; ?> 

Hoffe, das ist klar! Danke allen Jungs für die Hilfe!

+0

Danke für die Hilfe! Ich habe es geschafft, es zum Laufen zu bringen! Prost! –

Antwort

0

Sie geben den Kontrollkästchen das gleiche Namensattribut und legen das Wertattribut auf die ID der Kategorie fest. Dann fügen Sie den Akteur ein und erhalten seine ID mit $mysqli->insert_id. Dann führen Sie eine weitere Abfrage aus, um eine Zeile in die Tabelle actor_cats mit der ID des Actors und der ID der Kategorie einzufügen.

+0

'$ mysqli-> insert_id' ist eine Eigenschaft, keine Methode. – RaYell

+0

Ich habe es behoben. :-) – eWolf

0
$mysqli = new mysqli("host", "user", "password", "db"); 

$mysqli->query("INSERT INTO actors ..."); // your query to insert new actor 

$id = $mysqli->insert_id; 

// replace 1 with the category id 
$mysqli->query("INSERT INTO actor_cats (actor_id, cat_id) VALUES ($id, 1)");