Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Segregacja według dat wyników z kodu źródłowego innej strony
honytowk
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 3
Dołączył: 11.09.2008
Skąd: Gliwice

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


Witajcie mam pewien problem, otóż od pewnego czasu próbuje wyciągnąć dane (o wygranych turniejach) z portalu kurnik do swojego panelu administracyjnego (chce zrobić pewien system oceniania)

Ma to działać na zasadzie takiej że ludzie którzy będą się rejestrować na moim portalu [takimi samymi nickami jak na kurniku] zostaną wyświetleni w Panelu administracyjnym i ich turnieje które ostatnio wygrali

http://www.kurnik.pl/stat.phtml?uid=volt00...gid=ld&sk=5 <- tutaj pokazuje link ze statystykami przykładowego użytkownika i teraz z tego linku wyciągnąłem dane klasą " cutter " jest to klasa która wyciąga z podanej strony kod źródłowy a następnie ucina do pożądanych wyników.

w taki sposób wywołuje wyniki pożądanego usera:
  1. $w = new cutter('http://www.kurnik.pl/stat.phtml?uid='.$data["user_name"].'&gid=ld&sk=5', true);
  2. $w -> start('<table width="100%" cellspacing="2" cellpadding="2" border="0" class="ktb">', false, 1);
  3. $w -> end('</table>', false, -1);
  4. $w -> replace('</i>','<i>');
  5. $w -> replace('</b>','</i>');
  6. $w -> delete('<hr>');
  7. $w -> delete
  8. $datownik = $w->cut();
  9. echo"".$datownik."";


wynikiem jest:
Cytat
5299583 2010-12-28 (wto.) 00:30 volt00loca 3r, 2m 6 6 5299280 2010-12-27 (pon.) 22:40 nastka17 6r, 2m 16 12


Mogę oczywiście to pociąć na poszczególne elementy czyli zrobić oddzielnie zmienne do: id, daty, nicka założyciela konkursu

ale problem mam tego typu, że potrzebuje to posegregować według dat wyniki które są wyświetlane a zapisywać je do bazy nie mam za bardzo jak, ponieważ jeden user moze grać po kilka razy w tygodniu i wyświetli tak jak teraz 2 wyniki do jednego użytkownika.

Ma ktoś jakiś pomysł jak to posegregować nie zapisując do bazy ?

nie chce się narzucać, ale byłbym bardzo wdzięczny jeżeli ktoś z was zechciałby mi pomóc jeżeli tylko potrafi (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
honytowk
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 3
Dołączył: 11.09.2008
Skąd: Gliwice

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


Super wszystko działa tak jak powinno. Mam jeszcze jedno pytanie chciałbym umieścić rozwijana liste z miesiacami w ktorych były turnieje czyli klikam na selecta z lista i wybieram np styczen po czym pokazuje mi wszystko ze stycznia danej gry tutaj moja całą konstrukcja pliku
  1. require_once "maincore.php";
  2. require_once THEMES."templates/header.php";
  3. include LOCALE.LOCALESET."members.php";
  4. include "class.cutter.php";
  5.  
  6. add_to_title($locale['global_200'].$locale['400']);
  7.  
  8. if(!isset($_POST['game'])) { $_POST['game'] = 'ld'; }
  9. opentable($locale['400']);
  10. echo"<form action='".FUSION_SELF."?game=".$_POST['game']."' method='post'>
  11. <select name='game'>
  12. <option value='ld' ".($_POST['game'] == 'ld' ? "selected='selected'" : "").">Chińczyk</option>
  13. <option value='sw' ".($_POST['game'] == 'sw' ? "selected='selected'" : "").">Makao</option>
  14. <option value='dm' ".($_POST['game'] == 'dm' ? "selected='selected'" : "").">Domino</option>
  15. <option value='dc' ".($_POST['game'] == 'dc' ? "selected='selected'" : "").">Kosci</option>
  16. <option value='gn' ".($_POST['game'] == 'gn' ? "selected='selected'" : "").">Remik gin</option>
  17. <option value='th' ".($_POST['game'] == 'th' ? "selected='selected'" : "").">Tysiac</option>
  18. </select>
  19. <input type='submit' value='ok' /></form>";
  20. if (iMEMBER) {
  21. if (!isset($_GET['sortby']) || !ctype_alnum($_GET['sortby'])) { $_GET['sortby'] = "all"; }
  22. $orderby = ($_GET['sortby'] == "all" ? "" : " AND user_name LIKE '".stripinput($_GET['sortby'])."%'");
  23. $result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status='0'".$orderby);
  24. $rows = dbrows($result);
  25. if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
  26. if ($rows) {
  27. $i = 0;
  28. echo "<table cellpadding='2' cellspacing='0' width='100%'>\n<tr>\n";
  29. echo "<td class='tbl2'><strong>Nick </strong></td>\n";
  30. echo "<td class='tbl2'><strong>Wyniki</strong></td>\n";
  31. echo "<td align='center' width='1%' class='tbl2' style='white-space:nowrap'><strong>Punkty</strong></td>\n";
  32. echo "</tr>\n";
  33. $result = dbquery("SELECT user_id, user_name, user_status, user_level, user_groups FROM ".DB_USERS." WHERE user_status='0'".$orderby." LIMIT ".$_GET['rowstart'].",20");
  34. while ($data = dbarray($result)) {
  35.  
  36. $cell_color = ($i % 2 == 0 ? "tbl1" : "tbl2"); $i++;
  37. $w = new cutter('http://www.kurnik.pl/stat.phtml?uid='.$data["user_name"].'&gid='.$_POST['game'].'&sk=5', true);
  38. $w -> start('
  39. </ul>
  40. </div>', false, 1);
  41. $w -> end('<p>', false, -1);
  42. $w -> replace('</i>','<i>');
  43. $w -> replace('</b>','</i>');
  44. $w -> delete('<hr>');
  45.  
  46.  
  47. $htmlContent = $w->cut();
  48.  
  49. $dom = new DOMDocument;
  50. @$dom->loadHTML( $htmlContent );
  51. $rows = array();
  52. foreach( $dom->getElementsByTagName( 'tr' ) as $tr ) {
  53. $cells = array();
  54. foreach( $tr->getElementsByTagName( 'td' ) as $td ) {
  55. $cells[] = $td->nodeValue;
  56. }
  57. if(count($cells)) $rows[] = $cells;
  58.  
  59. }
  60.  
  61.  
  62. $new_data_set = array();
  63. //do tego punktu przerobiliśmy tabelę na praktyczną tablicę w php
  64. if(count($rows))
  65. {
  66. foreach($rows as $value)
  67. {
  68. $date_set = explode(' ', $value[1]);
  69. if(!array_key_exists($date_set[0], $new_data_set)) $new_data_set[$date_set[0]] = array();
  70. $new_data_set[$date_set[0]][] = array
  71. (
  72. 'id'=>$value[0],
  73. 'date'=>$date_set[0],
  74. 'day'=>$date_set[1],
  75. 'time'=>$date_set[2],
  76. 'params'=>$value[3],
  77. 'players'=>$value[4],
  78. 'result'=>$value[5]
  79. );
  80.  
  81.  
  82.  
  83.  
  84.  
  85. echo "<tr>\n<td class='$cell_color'>\n".profile_link($data['user_id'], $data['user_name'], $data['user_status'])."</td>\n";
  86.  
  87. echo "<td class='$cell_color'>";
  88.  
  89.  
  90.  
  91. if($new_data_set){echo"Turniej: <a href='http://www.kurnik.pl/turn.phtml?tid=".$value['0']."'>".$value['0']."</a> Data: ".$date_set['0']." organizator: <a href='http://www.kurnik.pl/stat.phtml?gid=".$_POST['game']."&uid=".$value['2']."'>".$value['2']."</a> Parametry: ".$value['3']." Uczestników: ".$value['4']." Miejsce: ".$value['5']." "; }echo"</td>\n";
  92. }
  93. }
  94. echo "<td align='center' width='1%' class='$cell_color' style='white-space:nowrap'></td>\n</tr>";
  95. }
  96. echo "</table>\n";
  97. } else {
  98. echo "<div style='text-align:center'><br />\n".$locale['403'].$_GET['sortby']."<br /><br />\n</div>\n";
  99. }
  100. $search = array(
  101. "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R",
  102. "S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9"
  103. );
  104. echo "<hr />\n<table cellpadding='0' cellspacing='1' class='tbl-border center'>\n<tr>\n";
  105. echo "<td rowspan='2' class='tbl2'><a href='".FUSION_SELF."?sortby=all'>".$locale['404']."</a></td>";
  106. for ($i = 0; $i < 36 != ""; $i++) {
  107. echo "<td align='center' class='tbl1'><div class='small'><a href='".FUSION_SELF."?sortby=".$search[$i]."'>".$search[$i]."</a></div></td>";
  108. echo ($i == 17 ? "<td rowspan='2' class='tbl2'><a href='".FUSION_SELF."?sortby=all'>".$locale['404']."</a></td>\n</tr>\n<tr>\n" : "\n");
  109. }
  110. echo "</tr>\n</table>\n";
  111. } else {
  112. redirect("index.php");
  113. }
  114. closetable();
  115.  
  116. require_once THEMES."templates/footer.php";
  117. ?>


czy miałby ktoś jakiś pomysł jak to zrobić?
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 12.10.2025 - 01:44