очистка URL-адреса сообщения из массива

Вот мой код:

$query = "SELECT first_name, surname, email FROM app2";
$result = mysql_query($query) or die(mysql_error());

$url = "https://test.com?"; // Where you want to post data
while($row = mysql_fetch_array($result)) {
$input = "";
foreach($row as $key => $value) $input .= $key . '=' . urlencode($value) . '&';
$input = rtrim($input, '& ');

$ch = curl_init();                    // Initiate cURL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);  // Tell cURL you want to post something
curl_setopt($ch, CURLOPT_POSTFIELDS, $input); // Define what you want to post
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return the output in string format
$output = curl_exec ($ch); // Execute

curl_close ($ch); // Close cURL handle

var_dump($output); // Show output
}

Проблема в том, что данные ($ input) выглядят так:

0=Lucky&first_name=Lucky&1=Dube&surname=Dube

Должно быть так:

first_name=Lucky&surname=Dube

1

Решение

Не нужно строить свой запрос самостоятельно. Во-первых, просто используйте _assoc()* функция ароматизатора, затем используйте http_build_query в этой строке массива партии, а затем передать его. Он создаст строку запроса для вас. Нет необходимости добавлять каждый элемент с & с вашим foreach, Грубый пример:

$ url = "https://test.com"; // Где вы хотите разместить данные

while ($ row = mysql_fetch_assoc($ результат)) {

$ input = http_build_query($ Строка);
$ ch = curl_init (); // Инициируем cURL
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_POST, true); // Сообщаем cURL, что вы хотите опубликовать что-нибудь
curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ input); // Определите, что вы хотите опубликовать
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); // Возвращаем вывод в строковом формате
$ output = curl_exec ($ ch); // Выполнить

curl_close ($ ch); // Закрыть дескриптор cURL
}
0

Другие решения

Попробуйте изменить

while($row = mysql_fetch_array($result)) {

с

while($row = mysql_fetch_assoc($result)) {

mysql_fetch_assoc возвращает только ассоциативный массив.

0