2010-04-27 3 views
0

Я тестирую массовую платформу Paypal, используя их «MassPay NVP example», и я с трудом пытаюсь внести поправки в код, поэтому вводит данные из моей базы данных MySql.Masspay и 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 [email protected] paid 100 
2 [email protected] unpaid 11 
3 [email protected] unpaid 20 
4 [email protected] unpaid 1 
5 [email protected] unpaid 20 
6 [email protected] unpaid 15 

Затем я создал запрос, который выбирает пользователь с невыплаченным остатком $ 10 и выше:

$conn = db_connect(); 
    $query=$conn->query("SELECT * from users WHERE 
         balance >='10' 
         AND status = ('unpaid')"); 

То, что я хотел бы для каждой записи возвращается из запроса для заполнения этого кода:

Теперь код, который, я считаю, d, чтобы изменить следующим образом:

for($i = 0; $i < 3; $i++) { 
    $receiverData = array( 'receiverEmail' => "[email protected]", 
          'amount' => "example_amount",); 
    $receiversArray[$i] = $receiverData; 
} 

Однако я просто не могу заставить его работать, я попытался с помощью mysqli_fetch_array, а затем заменить «[email protected]» с $ строки [ «»] адрес электронной почты и "example_amount" со строкой ['balance'] в различных методах кодирования, но это не сработает. Кроме того, мне нужно, чтобы он зациклился на несколько строк, которые были получены из запроса, как < 3 в цикле for выше.

Таким образом, конечный результат я ищу для строки $ nvpStr передать что-то вроде этого:

$nvpStr = "&EMAILSUBJECT=test&RECEIVERTYPE=EmailAddress&CURRENCYCODE=USD&[email protected]&L_Amt=11&[email protected]&L_Amt=11&[email protected]&L_Amt=20&[email protected]&L_Amt=20&[email protected]&L_Amt=15"; 

Благодаря

ответ

0

я решил этот вопрос после нескольких проб и ошибок:

<?php 
    $nvpStr="&EMAILSUBJECT=$emailSubject&RECEIVERTYPE=$receiverType&CURRENCYCODE=$currency"; 

$conn = db_connect(); 
    $query=$conn->query("SELECT email,balance from users WHERE 
         balance >='10' 
         AND status = ('unpaid')"); 
$i = 0; 
    while ($i <= mysqli_fetch_row) { 
    while($row = mysqli_fetch_object($query)) { 
     $nvpStr.="&L_EMAIL$i=$row->email&L_Amt$i=$row->balance"; 
     $i++;  
} 
} 

    ?>