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
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


No więc tak. Tu masz regexpa odpowiedzialnego za wyciągnięcie tego wieku:

  1. $txt = '<table>
  2. <tr><td>Anna Kowalska</td><td>20</td></tr>
  3. <tr><td>Jan Kowalski</td><td>40</td></tr>
  4. </table>';
  5.  
  6. $reg = preg_match_all("'<td>([0-9]+)</td>'si", $txt, $matches);


w TABLICY $matches[0] znajdują się zapisane wartości wiekowe.

Teraz jak je podpiąć pod to co Ty masz. Zakładam, że wartości w tabeli są poukładane w takiej samej kolejności jak wyniki, które dostajesz z bazy danych.

  1. $i = 0;
  2. while ($row = mysql_fetch_array($rows))
  3. {
  4. // jakieś tam Twoje instrukcje
  5. // ...
  6.  
  7. echo 'Wiek '.$i.' osoby: '.$matches[0][$i]; // wyświetlamy wiek
  8. $i++; // zwiększamy licznik
  9. }


Podsumowując ważne jest, abyś zdefiniował przed pętlą, że zmienna $i jest równa zero na start, a potem wewnątrz pętli while, na samym końcu zwiększał ten licznik o jeden ($i++). Przy takim układzie, Twój wiek dla danej osoby odczytujesz w ten sposób: $matches[0][$i].

Ten post edytował Michael2318 15.08.2014, 10:24:38
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: 10.10.2025 - 20:44