繁体   English   中英

PHP从SQL表中循环,结果循环成一个字符串,为什么不保存呢?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM