2017-10-16 44 views
0

我想在我的代碼中保存'newentryname'作爲字段名稱 - 但我總是收到一個錯誤,當我檢查它在刷新表格後第一次保存的sql表格時,但之後它不會保存PHP循環從SQL表結果循環到一個字符串,它不保存原因?

我從另一個表中拉出字段並將它們循環到輸入字段中,然後我試圖將字段名放入一個循環中放入一個字符串以保存在SQL中,以用於其他地方。

第1節:這是連接到單獨的表中相同的wordpress SQL表內 - 的$ WPDB變量包含SQL連接信息

<?php 
    global $wpdb; 
    // Add table name as variable to include prefix 
    $rowname = $wpdb->prefix . 'rowname'; 
    $results = $wpdb->get_results("SELECT * FROM $rowname "); 
    // $selected = $item['name']; 

第2部分:在這部分代碼回波的流出輸入字段作爲一個循環

/** Loop through the $results and add each as a checkbox options */ 

    $checked = ' '; 

foreach($results as $result) : 

    $resultid = $result->ID; 
    $resultrowname = $result->name; 
    $options.= sprintf("\t".'<input 

     type="checkbox" ' . '%1$s' . 'value="%3$s" name="newentryname[]" >%3$s'."\n", $checked, $resultid, $resultrowname); 

endforeach; 

注複選框:上面我不知道,如果newentryname []是什麼原因造成的錯誤 - 我不能告訴什麼樣的信息,這是隻發送給數據庫的理想我希望它存儲第3節中要使用的數據ow:

第3部分:這應該是結合上表中的數據輸入,並將其添加到字符串,因此它可以保存在一個字段中 - 但我不確定代碼是否得到遠。

$fieldname=$item['fieldname']; 

    // You have to loop through the array of checked box values ... 
    $newentryname=""; 
    foreach($fieldname as $entry): 
    $newentryname .= $entry.", "; 

endforeach; 

echo $options; 
?> 

編輯:上面是一個函數 functionname內部($項目) 並將其插入到數據庫中的代碼是: $結果= $ wpdb->插入($ TABLE_NAME,$項); 我想知道是否字段名'newentryname'也被提交給數據庫,我將如何解決這個問題,以及如何將第三部分的數據提交到數據庫中而不是

+7

「但我總是得到一個錯誤」。小心分享那個錯誤是什麼? –

+0

應該'$ fieldname = $ item ['fieldname'];'是'$ fieldname = $ item ['newentryname'];'而不是?這是直接複製/粘貼你的代碼,還是你可能在這裏重新鍵入它?你也可以將上面的代碼塊分解到每個階段,以清楚地瞭解它的流程。 – IncredibleHat

+0

錯誤只是一個一般性錯誤消息不牽制什麼錯誤不爲它不保存在SQL表: –

回答

0

需要添加$ n = 0和n ++在foreach循環

$checked = ' '; 
$n = 0; 
foreach($results as $result) : 

$resultid = $result->ID; 
$resultrowname = $result->name; 
$n++; 
$options.= sprintf("\t".'<input 

    type="checkbox" ' . '%1$s' . 'value="%3$s" name="newentryname[]" >%3$s'."\n", $checked, $resultid, $resultrowname); 

endforeach; 

,然後我取代下面的代碼的這一部分:

$fieldname=$item['fieldname']; 

// You have to loop through the array of checked box values ... 
$newentryname=""; 
foreach($fieldname as $entry): 
$newentryname .= $entry.", "; 

endforeach; 

echo $options; 

有了這個代碼,以處理輸出和回聲出輸出,所以它可以是曾經被髮送到別處

$fieldname = $_POST['fieldname']; 

    foreach($fieldname as $entry): 
    $output .= $entry.", "; 

endforeach; 

echo $output; 

我仍然得到這是因爲我的陣列結構的工作方式的錯誤,但它仍然不喜歡一個數組中的數組,但糾正上面的代碼上面是需要做什麼。