[英]PHP loop from SQL table with results looped into a string and it not saving why?
我正在尝试将“ newentryname”保存为代码中的字段名称-但我总是遇到错误,当我检查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节中使用的数据:
第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($ item)中,并将其插入数据库的代码是:$ result = $ wpdb-> insert($ table_name,$ item); 我想知道是否还将字段名“ newentryname”也提交给数据库,如何解决该问题,以及如何将第三节中的数据提交给数据库?
需要在foreach循环中添加$ n = 0和n ++
$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;
我仍然收到错误,这是由于我的数组结构的工作方式而引起的,它仍然不喜欢数组中的数组,但是要纠正上面的代码,则需要完成上述操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.