将数组插入关系表

时间:2015-06-04 13:03:14

标签: php mysql forms

我有3张桌子:

  • USER_LOGIN
  • doc_list
  • user_cat_link_table

所以我正在创建一个新用户,并且表单的一部分显示了从cat_list表中提取的可用类别的数组。

我正在努力与其他表单数据一起更新user_cat_link_table。

获取新用户ID并获取从复选框数组中选择的类别ID的脚本:

这是我的输入表格:

 <form action="actions/add_emp.php" method="post">

      <input type="text" name="user" placeholder="Username" required="required"  /><br/>
      <input type="text" name="pass" type="password" placeholder="Password"/></label><br/>

        <input type="text" name="firstname" id="name" required="required" 
               placeholder="Firstname"/><br />
        <input type="text" name="lastname" id="email" required="required" 
               placeholder="Lastname"/><br/>
        <input type="email" name="email" id="city" required="required" 
               placeholder="Email Address"/><br/>
        <input type="text" name="extension" id="extension" required="required" 
               placeholder="Extension Number"/><br/>
        <select name="title">
            <option  selected disabled>Please Select a Job Title...</option>

            <option disabled></option>
            <option disabled>Helpesk:</option>
            <option value="Technical Support Advisor">Technical Support Advisor</option>
            <option value="Deputy Team Leade">Deputy Team Leader</option>
            <option value="Team Leader">Team Leader</option>
            <option value="Incident Resolution Advisor">Incident Resolution Advisor
            </option>

            <option disabled></option>
            <option disabled>Call Centre:</option>
            <option value="Technical Support Advisor">Technical Support Advisor</option>
            <option value="">Deputy Team Leader</option>
            <option value="">Team Leader</option>

            <option disabled></option>
        </select>


<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
    }
    ?>
</div> 
        <input type="submit" value="Add User" name="submit"/><br />
    </form>

我可以看看我是否执行了print_r()或var_dump()我得到了我期望的结果:

Array ( [action] => id 
        [user] => test23wer3e4weret4essd 
        [pass] => test [firstname] => test 
        [lastname] => test 
        [email] => tes@test.com 
        [extension] => 1234 
        [cat_no] => Array ( [0] => 69 
                            [1] => 70 
                            [2] => 71 ) 
        [submit] => Add User )

这是一个表单,它作为脚本将数据插入user_login表(可以工作),但是底部的部分试图插入到连接表中我遇到了问题:

<?
session_start();
session_regenerate_id();
if(!ini_get('date.timezone'))
{
    date_default_timezone_set('GMT');
}

    if(isset($_POST["action"])){
    if(isset($_POST['submit'])){
    include_once'../../config.php';



    $dbh = new PDO("mysql:host=$hostname;dbname=dashboardr",$username,$password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    if(isset($_POST['user']) && isset($_POST['pass'])){
        $password=$_POST['pass'];
        $sql=$dbh->prepare("SELECT COUNT(*) FROM `user_login` WHERE `username`=?");
        $sql->execute(array($_POST['user']));

    if($sql->fetchColumn()!=0){

    die("User Exists");

    }else{
        function rand_string($length) {
        $str="";
        $chars = "subinsblogabcdefghijklmanopqrstuvwxyz
                            ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $size = strlen($chars);
        for($i = 0;$i < $length;$i++) {
        $str .= $chars[rand(0,$size-1)];
    }

    return $str; 
    }
        $p_salt = rand_string(20); 
        $site_salt="subinsblogsalt"; 
        $salted_hash = hash('sha256', $password.$site_salt.$p_salt);

        $sql=$dbh->prepare("INSERT INTO `user_login` 
                           (`id`, `username`, `password`, `psalt`, 
                            `firstname`, `lastname`, `email`, `extension`) 
                             VALUES (NULL, ?, ?, ?, ?, ?, ?, ?)");
        $sql->execute(
        array($_POST['user'], $salted_hash, $p_salt, $_POST["firstname"], 
              $_POST["lastname"], $_POST["email"], $_POST["extension"]));
        print_r($_POST);
        die();

        $docId = $dbh->lastInsertId();

$sql = "INSERT INTO `user_cat_link_table`(`UserID`, `Cat_ID`) VALUES";
$values = "";
$params = [];

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

{

    $values.= "(?, ?), ";
    $params[] = $cat; // correct here
    $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');

    }

    }
    }
?>

0 个答案:

没有答案