I have a list of IDs. For test this is about 20 items.
Now I want to make a loop and get extra data from another server. On this server I prepared a script - when you send it an item ID it will send back more details in JSON format.
while($row = mysql_fetch_array($result)){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://test.mysite.abc/call/itemdetail/id/".$row['id_item']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ret = curl_exec ($ch);
curl_close ($ch);
$result = json_decode($ret, true);
print_r($result);
vecho "<br>";
}
When I go on mysite.abc I see result when I give an item id. But when I run script sometimes I have 1 result or 3 results and the message:
Warning: mysql_fetch_array() expects parameter 1 to be resource, array given in C:\wamp64\www\testfile.php on line 65
How should I do this?
Check mysql_query
returned a valid resource type.
$result = mysql_query('SELECT column1, column2 FROM table WHERE 1=1'); // Change the SQL query with your
if ($result) {
while($row = mysql_fetch_array($result)){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://test.mysite.abc/call/itemdetail/id/".$row['id_item']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ret = curl_exec ($ch);
curl_close ($ch);
$result = json_decode($ret, true);
print_r($result);
echo "<br>";
}
}
Best Practices:, Avoid mysql_* extension. This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, use the MySQLi or PDO_MySQL extension.
Consider using multi-curl for your case. Look this answer for more details.
Cheerse!!