РЕШЕНО:
Пришлось указать начальное значение ' ' для $rfield, как подсказывает KNaito, ПЕРЕД циклом (т.е. $rfield = ' ';). Благодарю вас!
ОРИГИНАЛЬНЫЙ ПОСТ:
В качестве продолжения этой проблемы, которая была решена , возникает новая проблема, когда выходные данные цикла foreach дублируются в одном экземпляре, но не дублируются в другом:
Вот мой цикл:
foreach($fieldsarray as $field) {
${$field} = $globalrow[$field];
if(!empty($$field)) {$rfield.='<tr><td width="50%">'.${$field.'_label'}.': </td><td width="50%">'.${$field}.'</td></tr>';
}
}
$allrows=$rfield;
В $fieldsarray слишком много элементов для вставки сюда, но вот так:
$fieldsarray = array ('firstname','lastname','email');
$globalrow — это запрос mysql, который извлекает данные вошедшего в систему пользователя в соответствии с mysql_fetch_assoc.
Ожидаемый вывод HTML будет подтверждением регистрации со сводкой введенных данных, отображаемых на экране, а также в подтверждении по электронной почте, которое получает пользователь.
Это таблица, состоящая из строк введенных данных. Все данные сохраняются в БД.
Строки таблицы правильно выводятся на экран, например:
First Name: John
Last Name : Smith
но по какой-то странной причине в подтверждении по электронной почте вывод дублируется:
First Name: John
Last Name : Smith
First Name: John
Last Name : Smith
В обоих случаях я просто повторяю их:
<?php echo $allrows ?>
Как я уже сказал, я читал о проблемах дублирования вывода при использовании while и foreach, например. mysql_fetch_array - но, как вы можете видеть, это не тот случай, и почему это должно нормально работать на экране, в то время как в подтверждении по электронной почте все элементы отображаются дважды?
ИЗМЕНИТЬ, ЧТОБЫ ПОЯСНИТЬ ПОЛЬЗОВАТЕЛЯ В КОММЕНТАРИЯХ НИЖЕ:
У меня есть регистрационная форма, где люди регистрируются (вводят личные данные). Когда они заполняют форму, они попадают на сводную страницу, которая показывает их вставленные данные, например:
Prefix: Mr.
First Name: John
Last Name: Smith
После нажатия «Отправить» пользователь помечается как «зарегистрированный» и получает подтверждение по электронной почте.
Само подтверждение по электронной почте представляет собой простой файл HTML с добавлением фрагмента PHP, который печатает строки с данными пользователя (точно так, как показано на странице сводки).
Теперь на сводной странице вывод в порядке, но в подтверждении по электронной почте все данные ДУБЛИРУЮТСЯ и отображаются, например. в виде:
Prefix: Mr.
First Name: John
Last Name: Smith
Prefix: Mr.
First Name: John
Last Name: Smith
Итак, почему это произошло? И сводка, и подтверждение HTML — это абсолютно один и тот же код.
РЕДАКТИРОВАТЬ (PRINT_R):
print_r ($ глобальный):
Array ( [regid] => 630 [eid] => 1 [guid] => xxxxxx-D898-CBE0-D018-xxxxxxx [regcomp] => 1 [regdate] => 2014-04-25 14:57:28 [prefix] => Mr.
[nametitle] => [firstname] => Xxxxx [lastname] => Xxxxxx [company] => XXXXXXX [department] => [jobtitle] => [street] => XXXXXXXX [zip] => 8217878979 [city] => XXXXX [country] => XXXXX [priv_street] => [priv_zip] => [priv_city] =>
[priv_country] => [phone] => XXXXXX [fax] => [mobile] => [email] => XXXXXXX [travel] => [terms] => [notes] => [accommodation] => [roompartner] => [arrivaldate] => [arrivaltype] => [arrivalairport] => [arrivalflightno] =>
[arrivaltransfer] => [departuredate] => [departuretype] => [departureairport] => [departureflightno] => [departuretransfer] =>
[dinner] => [dinnerpersons] => 0 [food] => [hotel] => [checkin] => [checkout] => [roomtype] => [special] => [hotelnotes] => [groupparticipanttype] => Companion [mainparticipantid] => 629 )
print_r ($ поля массива):
Array ( [0] => prefix [1] => nametitle [2] => firstname [3] => lastname [4] => company [5] => department [6] => jobtitle [7] => email
[8] => phone [9] => fax [10] => mobile [11] => street [12] => zip [13] => city [14] => country [15] => dinner [16] => dinnerpersons
[17] => food [18] => checkin [19] => checkout [20] => hotel [21] => roomtype [22] => roompartner [23] => special [24] => hotelnotes
[25] => accommodation [26] => arrivaldate [27] => departuredate [28] => notes [29] => terms )
$field[0]['firstname'];
- person Justin E   schedule 25.04.2014$$
используйтеextract
- person Justin E   schedule 25.04.2014$rfield
? Есть ли вероятность того, что процесс вызывается дважды? - person KNaito   schedule 25.04.2014