0

i have this code for read some data from a database, and call another php script (hostes on another server) for sending retrieved data. this is my code:

while ($rs = mysql_fetch_array($quary_result)) {
    $fields = array(
        'field1' => $rs['field1']
    );

    $postvars = http_build_query($fields);

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);

    $result = curl_exec($ch);
    curl_close($ch);
}

but this code is executed only once. My query as about 200 results, while is executed only one time. What's wrong?

2
  • first of all where is $url var? Second, why do you use mysql_* functions? you MUST know they are deprecated... My advice: switch to PDO and foreach() them... Commented Nov 13, 2014 at 11:14
  • is declared in my code. But that's not the problem, because script is called perfectly, but only once! Commented Nov 13, 2014 at 11:18

1 Answer 1

1

You have the impression that it is executed only once...

Your code says this:

while $rs = mysql_fetch_array($query_result) is true { do something }

Then the $result var will be overwritten at each entering in the while loop. Try converting the $result var into an array of result and then print the array to see if you have all your values like:

$result[] = curl_exec($ch);
echo '<pre>';
   print_r($result);
echo '</pre>';

Also, you can use foreach() like:

$result = mysql_fetch_array($query_result);
foreach ($result as $res) { do something }

AND STOP USING MYSQL - this is deprecated. Use PDO instead like you are thought in this tutorial: PDO Tutorial.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.