【问题标题】:Warning: prev() expects parameter 1 to be array, string given in警告:prev() 期望参数 1 是数组,字符串在
【发布时间】:2013-11-07 14:16:40
【问题描述】:

我正在尝试了解如何解决此错误。

警告:prev() 期望参数 1 是数组,字符串在

它在下面的 if 语句中。这是因为第一个值没有以前的值而发生这种情况,我需要处理这种情况吗?奇怪的是,这在常规 .php 中有效,但在我现在拥有的框架中无效。

我正在尝试根据为查询返回的结果集生成 XML 文件。 (我愿意接受更好的想法)

    $export.= '<Campaigns>';
    while ($line = mysql_fetch_assoc($result) ) {
        //echo '<Email Timestamp="' . $line['EmailTimeStamp'] . '" ';
        $export.=  '<Campaign Info="' . $line['EmailTrackingNumber'] . '" EmailId="' .$line['EmailId'] . '">';
        $export.=  '<Emails>';
                if (prev($line['EmailTrackingNumber']) == current($line['EmailTrackingNumber'])) {
                    $export.=  '<Email Timestamp="' . $line['EmailTimeStamp'] . '" ';
                    $export.=  'City="' . $line['City'] . '" ';
                    $export.=  'Zip="' . $line['Zip'] . '"';
                }
        $export.=  '</Emails></Campaign>';
        }
    $export.= '</Campaigns></EmailTrackingData>';
    //echo $export;
    file_put_contents('DateOfFile-export.xml', $export);

【问题讨论】:

  • 发生这种情况是因为您将一个字符串传递给prev(),并且它需要一个数组。在这种情况下,如果我正确理解您的代码,您将尝试根据此数据库行中的变量是否已更改来输出内容 - 您只需将前一次循环迭代中的变量保存在某处并将它们与当前变量进行比较.

标签: php


【解决方案1】:

这个

prev($line['EmailTrackingNumber'])

不是数组而是字符串。这个

prev($line)

更有意义。它返回当前条目$line 之前的数组条目。

但我认为您想将上一条记录与当前记录进行比较。但这不是这样的。您只能访问当前记录的列。您必须暂时保存您的最后一条记录。

$export.= '<Campaigns>';

$lastLine = null;

while ($line =  mysql_fetch_assoc($result)) {
    //echo '<Email Timestamp="' . $line['EmailTimeStamp'] . '" ';
    $export.=  '<Campaign Info="' . $line['EmailTrackingNumber'] . '" EmailId="' .$line['EmailId'] . '">';
    $export.=  '<Emails>';

    if ($lastLine['EmailTrackingNumber'] == $line['EmailTrackingNumber']) {
        $export.=  '<Email Timestamp="' . $line['EmailTimeStamp'] . '" ';
        $export.=  'City="' . $line['City'] . '" ';
        $export.=  'Zip="' . $line['Zip'] . '"';
    }

    $export.=  '</Emails></Campaign>';
    $lastLine = $line;
}
$export.= '</Campaigns></EmailTrackingData>';
//echo $export;
file_put_contents('DateOfFile-export.xml', $export);

【讨论】:

    猜你喜欢
    • 2016-11-26
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多