Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyświetlanie wieku z tabeli - cURL
benzulli
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 3.07.2013

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


  1. while ($row = mysql_fetch_array($rows))
  2. {
  3. $name = $row['name'];
  4. $nameS = str_replace(" ", "+", $name);
  5. $nameS = str_replace("&", "%27", $nameS);
  6. $nameC = str_replace("&", "'", $name);
  7. $nameCsec = str_replace(" ", " ", $nameC);
  8. $nameF = str_replace("&", "'", $name);
  9. if(preg_match("/$nameCsec/", $link)) {
  10. [b] preg_match("@width:20%;\" >(.*?)</td>@", $link, $age);[/b]
  11. $arr_online .= '<tr><td><span style="color:green"><a target="_blank" href="http://strona.pl/index.php&name='.$nameS.'">'.$nameF.'</a></span></td><td>'.[b]$age[0][/b].'</td></tr>';
  12. } else {
  13. $arr_offline .= '<tr><td><span style="color:red">'.$nameF.'</li></span></td></tr>';
  14. }
  15. }


Witam

Mam tabelę użytkowników z imieniem i nazwiskiem, potrzebuję wydobyć wiek tych użytkowników, którzy są online. Próbowałem komendą preg_match, ale niestety wydobywa ona tylko pierwszy rekord, a resztę zostawia i rekordy wyświetlone się powtarzają (powtarza się pierwszy rekord we wszystkich komórkach).

Chciałem zrobić coś takiego, że np preg_match('@$name - tutaj wszystkie reguły i droga do wieku (.*?) a po lewo byłby wiek@', $link, $age), lecz niestety nie działa, bo w pierwszej opcji nie można z tego co wiem mieszać warunków ze zmiennymi.

Dzięki z góry za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
benzulli
post
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 3.07.2013

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


  1. include("connect.php");
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, 'http://strona.pl/index.php);
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. $link = curl_exec($curl);
  6. $reg = preg_match_all("'style=\"text-align:right;\" >(.*?)</tr>'si", $link, $matches);
  7.  
  8. for($i=1; $i<=count($matches[1]); $i++)
  9. {
  10. $get_name = preg_match_all("'\" >(.*?)</a>'si", $matches[1][$i], $matches_name);
  11. $get_age = preg_match_all("'<td style=\"width:10%;\" >([0-9]+)</td>'si", $matches[1][$i], $matches_age);
  12. $get_location = preg_match_all("'<td style=\"width:20%;\" >(.*?)</td>'si", $matches[1][$i], $matches_location);
  13.  
  14. echo $matches_name[1][0].' '.$matches_age[1][0].' '.$matches_location[1][0].'<br>';
  15. }
  16. $rows = mysql_query("SELECT * FROM people ORDER BY name ASC");
  17. $arr_online = '';
  18. $arr_offline = '';
  19. $arr_zmienna = array();
  20. while ($row = mysql_fetch_array($rows))
  21. {
  22. $arr_zmienna[] = $matches_name[1][0].' '.$matches_age[1][0].' '.$matches_location[1][0].'<br>';
  23. $name = $row['name'];
  24. $nameS = str_replace(" ", "+", $name);
  25. $nameS = str_replace("&", "%27", $nameS);
  26. $nameC = str_replace("&", "'", $name);
  27. $nameCsec = str_replace(" ", " ", $nameC);
  28. $nameF = str_replace("&", "'", $name);
  29. if(preg_match("/$nameCsec/", $arr_zmienna[0])) {
  30. $arr_online .= '<tr><td><span style="color:green"><a target="_blank" href="http://www.strona.pl/index.php&name='.$nameS.'">'.$nameF.'</a></span></td><td>'.$arr_zmienna[1].'</td><td>'.$arr_zmienna[2].'</td></tr>';
  31. } else {
  32. $arr_offline .= '<tr><td><span style="color:red">'.$nameF.'</li></span></td></tr>';
  33. }
  34. }
  35.  
  36. echo $arr_online.$arr_offline;
  37. ?>


Dałem do tablicy i przy wyszukiwaniu chcę porównać, lecz niestety w ogóle to nie działa (wiem, że coś na bank źle zrobiłem).

Ten preg_match u samej góry musiałem pozmieniać bo tam występowała dwukolorowa tabelka, co kilka rekordów tło się zmieniało (klasa td) więc to jest dobrze bo mi wyświetla całą liste i wszystko, tylko kiedy chcę porównać jest problem.

Ten post edytował benzulli 15.08.2014, 21:06:29
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: 9.10.2025 - 08:52