2015-05-23 165 views
-1

所以我有3個表doc_list,cat_list和cat_doc_link_table我已經建立了一個所見即所得的創建者的管理面板,這個想法是當你想創建一個新的職位,我列出你可以分配它的類別要這樣:join table not posting in

<?php 
require_once '../../db_con.php'; 

try{ 
    $results = $dbh->query("SELECT * FROM cat_list"); 

}catch(Exception $e) { 
    echo $e->getMessage(); 
    die(); 
} 
$category = $results->fetchAll(PDO::FETCH_ASSOC); 
?> 

<label><input type="checkbox" name="" class="selectall"/> Select all</label> 

<div id="checkboxlist" > 
    <?php 
     foreach($category as $cat){ 
    ?> 

    <input type="checkbox" value="<?php echo $cat["cat_id"]; ?>" name="cat_no[]" id="box1"> <?php echo $cat["cat_title"]; ?></a><br> 

    <?php 
    } 
    ?> 

然後是其餘的輸入字段。

它會在doc_list中發佈,並按預期添加一個新行,但在連接表中,我期望它將文檔的值和貓的價值結合起來,並且不會發布到表 - 我做了一個var轉儲,它肯定知道我從複選框中選擇哪些類別,但不會發布到該連接表中?

$sql = "INSERT INTO `cat_doc_link_table`(`link_cat_id`, `link_doc_id`) VALUES"; 
$values = ""; 
$params = []; 

foreach($_POST["cat_no"] as $cat) 

    var_dump($cat); 

{ 
    $values.= "(?, ?), "; 
    $params[] = $cat["cat_id"]; 
    $params[] = $docId; 
} 
    $values = substr($values, 0, -2); 
    $sql.= $values; 
    $query = $dbh->prepare($sql); 
    $query->execute($params);  

    if ($dbh->query($sql)) { 

    }else{} 

    $dbh = null; 
    }catch(PDOException $e) 

    { 
    header ('Location: ../list_doc.php?success=1'); 
    } 

    } 

} 

回答

2

要訪問你應該只使用$貓,而不是貓$ [ 「CAT_ID」]

... 
foreach($_POST["cat_no"] as $cat) 

{ 
    var_dump($cat); // 

    $values.= "(?, ?), "; 
    $params[] = $cat; // correct here 
    $params[] = $docId; 
} 
... 
+0

選擇的類別,它應該是太糾正。完成! – Pvb

+0

Jeez我怎麼沒發現 – PhpDude