Panowie mam kod:
$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
preg_match_all("/<td class='auto_id'>(.*?)<\/td>/", $output, $id_auto); 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) {
echo 'Błąd: ' . $e->getMessage(); }
echo $i. ' - ' .$pid.' - '. $data .' }
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 ?