2013-04-04 53 views
0

我打算做一個複選框,其中存儲有它,我檢查 但我得到了一個錯誤:複選框和foreach

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' Array, 5' at line 1

我有更新我的代碼現在的我得到一個新的錯誤:

「不能添加或更新子行,外鍵約束失敗(dashboarddas_custermers_employees,約束das_custermers_employees_ibfk_5外鍵(das_employess_id)參考文獻das_employer_rolesid))」

希望有人能幫助...我已經把我所有的代碼在南非希望有人能看到什麼是錯的

我的HTML

<div class="contact_form_div"> 
      <form method="post"> 
       <?php 
       global $wpdb;       

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

    mysql_query("DELETE FROM das_custermers_employees WHERE das_custermers_id = $user_custermers_id") or die(mysql_error()); 


    if (!empty($_POST['role_checkbox']) && is_array($_POST['role_checkbox'])) { 
    foreach ($_POST['role_checkbox'] as $employess_roles) { 
     foreach ($employess_roles as $em_id){ 
      $employess_hidden = $_POST["employess_hidden_$em_id"]; 
     mysql_query("INSERT INTO das_custermers_employees(das_employess_id, employees_role_id, das_custermers_id) VALUES ($employess_hidden, $em_id, $user_custermers_id) ") or die(mysql_error()); 


     } 
    } 
    } 
} 
         $show_employess = mysql_query("SELECT * FROM das_employess") or die(mysql_error()); 

       while ($my_employess = mysql_fetch_array($show_employess)) { 

        ?>       
         <b><? echo " " . $my_employess['first_name'] . " "; 
          echo $my_employess['last_name'] . " "; ?></b> 
         <? 
         $show_role = mysql_query("SELECT * FROM das_employer_roles") or die(mysql_error()); 

         while ($my_role = mysql_fetch_array($show_role)) { 

          ?> 
          <input type="hidden" name="employess_hidden_<? echo $my_role['id']; ?>" value="<? echo $my_employess['id']; ?>" /> 
          <em><p class="role_checkbox"><input type="checkbox" name="role_checkbox[][<? echo $my_role['id']; ?>]" <? //if (mysql_num_rows($role_query) == 1) echo 'checked="checked"'; ?> value="<? echo $my_role['id']; ?>"/><? echo " " . $my_role['role']; ?> </p></em> 
           <? } ?>       
    <? 
} 

?> 
        <input value="Gem" name="add_contact_btn" type="submit" > 
        </form> 
      </div> 

下面是表模式: Here is the database schema:

+0

可以告訴我們產生錯誤的代碼行在哪裏? – 2013-04-04 06:51:12

+0

無法添加或更新子行:外鍵約束失敗(dashboard.das_custermers_employees,CONSTRAINT das_custermers_employees_ibfk_5 FOREIGN KEY(das_employess_id)REFERENCES das_employer_roles(id)) – 2013-04-04 08:07:04

+0

如果我回應我的查詢,我可以看到問題出現在我的隱藏字段中,但我不知道什麼是錯的:( – 2013-04-04 08:08:04

回答

0

你錯過了什麼..檢查下面...

mysql_query("INSERT INTO das_custermers_employees(das_employess_id, employees_role_id, das_custermers_id) VALUES ($employess_hidden, $em_id, $user_custermers_id)") or die(mysql_error()); 
0

我認爲:

mysql_query("INSERT INTO das_custermers_employees(das_employess_id, employees_role_id, das_custermers_id) VALUES ($employess_hidden, $employess_roles, $user_custermers_id ") or die(mysql_error()); 

應該是:

mysql_query("INSERT INTO das_custermers_employees(das_employess_id, employees_role_id, das_custermers_id) VALUES ($employess_hidden, $em_id, $user_custermers_id ") or die(mysql_error()); 

你試圖從foreach迴路的元素,而不是插值陣列到INSERT聲明。

而且,變化:

$employess_hidden = $_POST["employess_id_$em_id"]; 

到:

$employess_hidden = $_POST["employess_hidden_$em_id"]; 

。在你沒有任何形式的輸入employess_id_XXX

+0

,我得到一個錯誤: 「你的SQL語法有錯誤;請查看與你的MySQL服務器版本對應的手冊,在第1行'4,5'附近使用「 – 2013-04-04 06:57:59

+0

你可以將'foreach'循環中的查詢字符串賦值給一個變量var_dump它,並顯示? – Barmar 2013-04-04 07:02:15

+0

我認爲它在我的HTML問題是...問題是它沒有得到我的das_employess_id:/ ... – 2013-04-04 07:22:45