Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]curl i update, jak ustawić rosnąco ?
casperii
post 17.10.2018, 19:31:28
Post #1





Grupa: Zarejestrowani
Postów: 680
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Panowie mam kod:

  1. $pdo = new db_connect();
  2. $sql = $pdo->prepare('SELECT * FROM `auta` WHERE `pid` > 0 AND `pid` < 99999 ORDER BY `pid` ASC LIMIT 250');
  3. $sql->execute();
  4. $ile = $sql->rowCount();
  5. $dodajID = '';
  6. $data = '';
  7.  
  8. while ($row = $sql->fetch()) {
  9. $dodajID .= $row['pid'].';'; //zbieramy ID auta
  10. $OldDate[] .= $row['data'].',';
  11. }


zebrane ID następnie przekazuje do CURLA:

  1. $url = 'https://www.blaeeabla.pl/get&id='.$dodajID;
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL,$url);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  5. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  6. curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
  7. $output = curl_exec($ch);
  8. curl_close($ch);


powyższy CURL wyświetla mi listę aut wg. ID ASC, więc sobie je przeszukuje przez preg_match_all

  1. preg_match_all("/<td class='auto_id'>(.*?)<\/td>/", $output, $id_auto);
  2. preg_match_all("/<td class='data'>(.*?)<\/td>/", $output, $getData);
  3. for($i = 0; $i < $ile; $i++){
  4. $pid = strip_tags($id_auto[0][$i]);
  5. $data = strip_tags($getData[0][$i]);
  6.  
  7. if($data != ''){
  8. $addDate = $data;
  9. }else{
  10. $addDate = $OldDate[$i];
  11. }
  12.  
  13. try{
  14. $pdo = new db_connect();
  15. $sqlUpd = $pdo->prepare('UPDATE `auta` SET `data` = :data WHERE `pid` =:pid LIMIT 1');
  16. $sqlUpd->bindValue(':pid', $pid, PDO::PARAM_INT);
  17. $sqlUpd->bindValue(':data', $data, PDO::PARAM_INT);
  18. $sqlUpd->execute();
  19. } catch(PDOException $e) {
  20. echo 'Błąd: ' . $e->getMessage();
  21. }
  22. echo $i. ' - ' .$pid.' - '. $data .'
  23. }


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 ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 09:38