Я тестирую массовую оплату Paypal, используя их пример MassPay NVP , и у меня возникают трудности при попытке изменить код, чтобы ввести данные из моей базы данных MySql.
В основном у меня есть таблица пользователей в MySql, которая содержит адрес электронной почты, статус платежа (оплачен, не оплачен) и баланс.
CREATE TABLE `users` (
`user_id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(100) collate latin1_general_ci NOT NULL,
`status` enum('unpaid','paid') collate latin1_general_ci NOT NULL default 'unpaid',
`balance` int(10) NOT NULL default '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
Данные:
1 test1@example.net paid 100
2 test2@example.net unpaid 11
3 test3@example.net unpaid 20
4 test4@example.net unpaid 1
5 test5@example.net unpaid 20
6 test6@example.net unpaid 15
Затем я создал запрос, в котором выбираются пользователи с неоплаченным балансом в размере 10 долларов США и более:
$conn = db_connect();
$query=$conn->query("SELECT * from users WHERE
balance >='10'
AND status = ('unpaid')");
Я хотел бы, чтобы для каждой записи, возвращаемой из запроса, заполнялся следующий код:
Теперь код, который я считаю нужным изменить, выглядит следующим образом:
for($i = 0; $i < 3; $i++) {
$receiverData = array( 'receiverEmail' => "user$i@paypal.com",
'amount' => "example_amount",);
$receiversArray[$i] = $receiverData;
}
Однако я просто не могу заставить его работать, я попытался использовать mysqli_fetch_array, а затем заменил "user$i@paypal.com" на $ row ['email'] и "example_amount" на row ['balance'] в различных методах кодирования, но это не работает. Также мне нужно, чтобы он зациклился на любом количестве строк, которые были получены из запроса как <3 в цикле for выше. </p>
Итак, конечный результат, который я ищу, состоит в том, чтобы строка $ nvpStr передавалась примерно так:
$nvpStr = "&EMAILSUBJECT=test&RECEIVERTYPE=EmailAddress&CURRENCYCODE=USD&L_EMAIL0=$test2@example.net&L_Amt=11&L_EMAIL1=$test3@example.net&L_Amt=11&L_EMAIL2=$test3@example.net&L_Amt=20&L_EMAIL3=$test5@example.net&L_Amt=20&L_EMAIL0=$test6@example.net&L_Amt=15";
Спасибо