2013-02-18 78 views
2

当同时在两个表中插入值时,我有称为用户和类别的表。 但是在类别表格中,我使用6个不同选项的复选框插入不同的类别,这些选项被访问时会购买一个名称。但问题是我插入的选择我想每个都从用户的表中获取相同的引用标识,以便我可以轻松跟踪该用户的选择。现在,当我插入它给每个选择一个不同的参考ID,它只使用第一选择的原始ID请帮助我解决这个问题。下面是 是代码,但我删除了一些,以便我们只关注问题。如何在复选框的每个选项中插入访问相同参考ID的多个选择

<?php 



?> 

<div class="form"> 

    <h1>Client informatinon <?php echo $_SESSION['username']." ";?></h1> 
    <form action ="form.php" method = "post" id="postform"> 
<table><tr><td> 

<tr><td> 
<input type="checkbox" name="category_name[]" id="inlineCheckbox1" value="Architecture"> Architecture 
</td></td><td> 
<input type="checkbox" name="category_name[]" id="inlineCheckbox2" value="townplanning">Town Planning 
</td></tr><tr><td> 
<input type="checkbox" name="category_name[]" id="inlineCheckbox3" value="civilengineering">Civil Engineering 
           </td><td> 
<input type="checkbox" name="category_name[]" id="inlineCheckbox3" value="buildingandrenovation"> Building & Renovation 
           </td></tr><tr><td> 
           <input type="checkbox" name="category_name []" id="inlineCheckbox3" value="other"> Other 
     </td><td>     
<input type="checkbox" name="category_name[]" id="inlineCheckbox3" value="interiorgaphicdesign"> Interior graphic design 

           </td></tr> 



    </form> 
    </table> 
</div> 

<?php 


if(isset($_POST['category_name'])){ 
foreach($_POST['category_name'] as $value){ 

?> 
<?php 
try{ 
$query="INSERT INTO tish_user(username,Password,Previllage,date_created) 
VALUES(:username,:Password,:Previllage,:date_created)"; 
$insert = $con->prepare($query); 
$insert->execute(array(
':username'=>$username, 
':Password'=>(md5($Password)), 
':Previllage'=>$Previllage, 
':date_created'=>$date_created)); 
#end of first table 
################################################ 
#You select the first Id and put it in a variable then 
$id_last = ("SELECT LAST_INSERT_ID()"); 
$result =$con->prepare($id_last); 
$result->execute(); 
$last_id = $result->fetchColumn(); 
############################## Last Id query Ends here 
#insert into clientinfo table 
$clientinfor="INSERT INTO tish_clientinfo 
(title, firstname, lastname, nickname, idnumber, client_code, 
company, country, city, province, address, cell, 
tel, webaddress, satifiedstatus, email, job_approval, cash_with_vat, 
cash_paid, date_registered,user_id) 
VALUES(:title,:firstname,:lastname,:nickname,:idnumber,:client_code, 
:company,:country,:city,:province,:address, 
:cell,:tel,:webaddress,:satifiedstatus, :email, :job_approval, 
:cash_with_vat,:cash_paid, :date_registered,$last_id)"; 
$clientinfor_insert = $con->prepare($clientinfor); 
$clientinfor_insert->execute(array(
':title'=>$title, 
':firstname'=>$firstname, 
':lastname'=>$lastname, 
':nickname'=>$nickname, 
':idnumber'=>$idnumber, 
':client_code'=>$client_code, 
':company'=>$company, 
':country'=>$country, 
':city'=>$city, 
':province'=>$province, 
':address'=>$address, 
':cell'=>$cell, 
':tel'=>$tel, 
':webaddress'=>$webaddress, 
':satifiedstatus'=>$satifiedstatus, 
':email'=>$email, 
':job_approval'=>$job_approval, 
':cash_with_vat'=>$cash_with_vat, 
':cash_paid'=>$cash_paid, 
':date_registered'=>$date_registered 
)); 
#end of clien infor 
################################################ 
$security="INSERT INTO tish_security(ip_address,user_id) 
VALUES(:ip_address,$last_id)"; 
$security_insert = $con->prepare($security); 
$security_insert->execute(array(
':ip_address'=>$ip_address)); 
##########################end of security 
############ images 
$images ="INSERT INTO tish_images(user_id,image_name,date_registered) 
VALUES($last_id,:image_name,:date_registered)"; 
$images_insert = $con->prepare($images); 
$images_insert->execute(array(
':image_name'=>$rename, 
':date_registered'=>$date_created)); 
##############################category 
$catigory="INSERT INTO tish_catigory(user_id,category_name) 
VALUES($last_id,:category_name)"; 
$catigory_insert = $con->prepare($catigory); 
$catigory_insert->execute(array(
':category_name'=>$value)); 
############# property table########################################################## 
/*$property ="INSERT INTO tish_propertyinfo(user_id,date_registered) 
VALUES($last_id,:date_registered)"; 
$property_insert = $con->prepare($images); 
$property_insert->execute(array(':date_registered'=>$date_created)); 
*/}catch(PDOException $e){ 
echo $e->getMessage(); 
} 
#3 fo the 
} 
} 
var_dump($value); 



?> 


</body> 
+0

一些示例代码将是 – 2013-02-18 13:54:04

+0

能更清楚请有用吗? – 2013-02-18 13:57:17

+2

@qeremy和Andy Gee我发布了代码 – humphrey 2013-02-18 14:02:27

回答

1

我觉得挑战在这里吧? Cos,可以插入一只猫吗?

$catigory="INSERT INTO tish_catigory(user_id,category_name) 
    VALUES($last_id,:category_name)"; 

好吧,也许这不是一个真正的答案,但假设你试图插入多个猫,但具有相同的last_id;

$cats = $vals = array(); 
foreach ((array) $_POST['category_name'] as $cat) { 
    if ('' !== ($cat = trim($cat))) { 
     $cats[] = $cat; 
     $vals[] = "({$last_id}, ?)"; 
    } 
} 

if (!empty($cats)) { 
    $sql = 'INSERT INTO tish_catigory (user_id, category_name) VALUES'. join(',', $vals); 
    print($sql); // INSERT INTO tish_catigory (user_id, category_name) VALUES(111, ?),(111, ?) 

    $sth = $con->prepare($sql); 
    foreach ($cats as $i => $cat) { 
     $sth->bindValue($i+1, $cat, PDO::PARAM_STR); 
    } 
    $sth->execute(); 
    ... 
} 

在这里看到更多的细节:http://php.net/manual/en/pdostatement.bindvalue.php

+0

你即将给我一个答案是的,我真的明白你理解我100%是什么正在寻找你的代码使databse看起来正是我想要的,因为user_id作为ref从未改变是好的,但我怎么能将值转换为真正的值,因为我看到(146,?)在我的分区 – humphrey 2013-02-18 15:10:45

+1

@humphrey ;其实我怀疑我错过了什么,并打开了我的电脑。所以再次看到答案,也许修改。感谢接受。 – 2013-02-18 15:29:22

+0

感谢它工作100%请邀请我在gtalk kingmusa5在gmail.com – humphrey 2013-02-18 16:18:47

相关问题