Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie konkretnej informacji z tabeli na innej stronie.
omi
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.11.2017

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


Witam!

Pobieram całą stronę: https://secure.tibia.com/community/?subtopic=killstatistics (np.server Amera ) do pliku tekstowego za pomocą curl, a chcałbym z tej tabeli co tam jest zapisać tylko np. dwie pozycje "Abyssador" i "An Observer Eye" z kolumny Race, a z kolumny Last Day - Killed by Players.

Bym prosił o jakiś przykładowy kod jak to wyselekcjonować żeby nie zapisywało wszystkiego ze strony tylko te konkretne dwie rzeczy. Pozdrawiam.

Ten post edytował omi 7.02.2018, 01:57:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
omi
post
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.11.2017

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


Dzięki za odpowiedź. Popróbuję coś wykombinować tylko mówię od razu że nie skończyłem informatyki na politechnice i mogę nie ogarniać niektórych wątków i nie ogarniam. Coś spróbuję posklejać. To taki projekt hobbistyczny.

INSERT to powinien wyglądać mniej więcej tak ?:

  1. INSERT INTO $tabela VALUES ('0', '1');


I wtedy te pobrane dane można zapisać w jednym wierszu w dwóch kolumnach. Tak tu to widzę z przykładów.
Czyli potrzebuje w kodzie mieć coś takiego jw. czy nie bardzo?


A więc na razie mam taki kod:

  1. $mysqli = new mysqli("localhost", "my_user", "my_password", "nazwa bazy danych");
  2.  
  3. /* check connection */
  4. if (mysqli_connect_errno()) {
  5. printf("Connect failed: %s\n", mysqli_connect_error());
  6. exit();
  7. }
  8.  
  9. $tabela = "Nazwa tabeli";
  10.  
  11.  
  12. $html = file_get_contents('https://secure.tibia.com/community/?subtopic=killstatistics&world=Amera');
  13.  
  14. $dom = new DOMDocument;
  15. libxml_use_internal_errors(true);
  16. $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
  17. libxml_clear_errors();
  18. $dom->encoding = 'UTF-8';
  19.  
  20. $xpath = new DOMXPath($dom);
  21. $tds = $xpath->query('//table//td[contains(text(),"Abyssador") or contains(text(),"An Observer Eye")]/ancestor::tr/td[3]');
  22.  
  23. foreach($tds as $td){
  24. echo $td->nodeValue;
  25. }


I teraz nie wiem jak zmodyfikować ten kod i wstawić do niego INSERT i DELETE.
Pozdrawiam

Po chwili zastanowienia stwierdziłem ze ten kod wyżej nie zda mi egzaminu trzeba to zrobić tak jak pisał SmokAnalog za pomocą preg_match i preg_match_all. Czyli w bazie danych powinny być dwa wiersze w tym przypadku w których będą się znajdować dwa słowa "Abyssador" i "An Observer Eye" i przypisane w drugiej kolumnie do tych słów wartości.

Ten post edytował omi 8.02.2018, 01:27:45
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 10:04