$pdo = new db_connect(); $sql = $pdo->prepare('SELECT * FROM `auta` WHERE `pid` > 0 AND `pid` < 99999 ORDER BY `pid` ASC LIMIT 250'); $sql->execute(); $ile = $sql->rowCount(); $dodajID = ''; $data = ''; while ($row = $sql->fetch()) { $dodajID .= $row['pid'].';'; //zbieramy ID auta $OldDate[] .= $row['data'].','; }
zebrane ID następnie przekazuje do CURLA:
$url = 'https://www.blaeeabla.pl/get&id='.$dodajID; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "$login:$password"); $output = curl_exec($ch); curl_close($ch);
powyższy CURL wyświetla mi listę aut wg. ID ASC, więc sobie je przeszukuje przez preg_match_all
for($i = 0; $i < $ile; $i++){ if($data != ''){ $addDate = $data; }else{ $addDate = $OldDate[$i]; } try{ $pdo = new db_connect(); $sqlUpd = $pdo->prepare('UPDATE `auta` SET `data` = :data WHERE `pid` =:pid LIMIT 1'); $sqlUpd->bindValue(':pid', $pid, PDO::PARAM_INT); $sqlUpd->bindValue(':data', $data, PDO::PARAM_INT); $sqlUpd->execute(); } catch(PDOException $e) { } }
Natomiast w przypadku gdy nie ma daty i ma zostać przypisana data która była wcześniej to pojawia się problem. Pętla for sortuje sobie wyniki w innej kolejności niż zostały wyświetlone / dodane w CURLu.
Może ktoś pomóc jak zmusić pętle for do ustawienia wyników w innej kolejności ? Ewentualnie jak przerobić zapytanie by w razie gdy w liście nie ma daty ($data !='') nie zostało tylko to pole updatowane ?