Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyszukiwaniem.
Forum PHP.pl > Forum > PHP
GSlayeR
W statystykach na forum mam opcję wyszukiwania lecz nie jest ona sprawna, mianowicie po wpisaniu szukanej frazy pojawia się błąd:

Kod
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /usr/home/udiabelka/domains/udiabelka.unixstorm.org/public_html/kzstats/stats_search.php on line 170


Kod
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /usr/home/udiabelka/domains/udiabelka.unixstorm.org/public_html/kzstats/stats_search.php on line 241


Tutaj jest kod pliku odpowiedzialnego za szukanie:

  1. <html>
  2. <head>
  3. <title>Wyszukiwarka Statystyk CS-Kreedz.pl</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  5. <link rel="stylesheet" href="css-stats.css" type="text/css">
  6. </head>
  7.  
  8. <!--<body link="#000000" vlink="#000000" alink="#000000">//-->
  9. <!--<img src='images/top15.gif'></img>
  10. <br>
  11. <br>//-->
  12. <?php
  13. // $nick_link = ('stats_pa.php?player=%s&sort=0&sid=%s', %nick, $SID);
  14. echo ('
  15. <form method="post" ><table width="100%" border="0" cellspacing="0" cellpadding="0">
  16. <table border="0" align="left">
  17. <tr>
  18. <td width="50%">
  19. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  20. <tr>
  21. <td>
  22. <input type="text" name="search" id="search" /> ');
  23. /*echo ('<select name="what_search" id="what_search">');
  24. echo ('<option value="Wszedzie">Wszedzie</option> ');
  25. echo ('<option value="Mapa">Mapa</option>');
  26. echo ('<option value="Nick">Nick</option>');
  27. echo ('<option value="SteamID">SteamID</option>');
  28. echo ('<option value="Ilosc CP">Ilosc CP</option>');
  29. echo ('<option value="Uzycie Scouta">Uzycie Scouta</option>');
  30. echo ('<option value="Czas">Czas</option>');
  31. echo ('</select></label><label>');*/
  32. echo (' <input type="submit" name="submit" value="Szukaj" /></td>
  33. </tr>
  34. </table></td>
  35. </tr>
  36. </table></form>');
  37.  
  38. if($_POST['submit'])
  39. {
  40. if ( $_POST['search'] != '' ) {
  41. getrezultat();
  42. }else{
  43. echo 'Podana fraza jest nieprawidlowa';
  44. }
  45. } else {
  46. echo 'Podaj tresc jaka chcesz wyszukac';
  47. }
  48.  
  49.  
  50. function getrezultat()
  51. {
  52.  
  53. $dh = opendir('kz');
  54. $path = "kz";
  55. $p = 0;
  56. while (false !== ($filename = readdir($dh)))
  57. {
  58. if(substr_count($filename, ".txt") == 0) continue;
  59. if(substr_count($filename, "top15") == 0)
  60. {
  61. $filetop = explode(".", $filename);
  62. $mapa = $filetop[0];
  63. $A_maps[$p][0] = $filetop[0];
  64. $filetop = sprintf("%s/%s-top15.txt", $path, $filetop[0]);
  65. $filename = sprintf("%s/%s", $path, $filename);
  66. /*if (file_exists($filetop)) {
  67. $topc++;
  68. $fp = fopen($filetop, "r");
  69. $i = 1;
  70. $A_maps[$p][2] = fgets($fp, 33); //name
  71. $rec = fgets($fp, 33); //IP
  72. $A_maps[$p][88] = fgets($fp, 33); //ID
  73. $A_maps[$p][5] = fgets($fp, 33); //STAMP
  74. $rec = fscanf($fp, "%d\n");
  75. list($A_maps[$p][4]) = $rec; //TP
  76. $rec = fscanf($fp, "%d\n");
  77. list($A_maps[$p][6]) = $rec; //SCOUT
  78. $rec = fscanf($fp, "%d\n");
  79. list($A_maps[$p][3]) = $rec; //TIME
  80. */
  81.  
  82. if (file_exists($filetop))
  83. {
  84. $fp = fopen($filetop, "r");
  85. while (!feof ($fp))
  86. {
  87. $A_top[$p][0] = fgets($fp, 33); //name
  88. if($A_top[$p][0]=="") break;
  89. $rec = fgets($fp, 33); //IP
  90. $A_top[$p][88] = fgets($fp, 33); //ID
  91. $A_top[$p][4] = fgets($fp, 33); //STAMP
  92. $rec = fscanf($fp, "%d\n");
  93. list($A_top[$p][1]) = $rec; //TP
  94. $rec = fscanf($fp, "%d\n");
  95. list($A_top[$p][2]) = $rec; //SCOUT
  96. $rec = fscanf($fp, "%d\n");
  97. list($A_top[$p][3]) = $rec; //TIME
  98.  
  99. //$search_tab_vis[$p] = array($mapa . $A_top[$p][0] . $A_top[$p][88] . $A_top[$p][4] . $A_top[$p][1] . $A_top[$p][2] . $A_top[$p][3]);
  100. $search_tab_vis[$p] = $mapa."\t".$A_top[$p][0]."\t".$A_top[$p][88]."\t".$A_top[$p][4]."\t".$A_top[$p][1]."\t".$A_top[$p][2]."\t".$A_top[$p][3];
  101. $search_tab[$p] = $A_top[$p][0]."\t".$A_top[$p][88]."\t".$A_top[$p][4]."\t".$A_top[$p][1]."\t".$A_top[$p][2]."\t".$A_top[$p][3];
  102. $search_tab_map[$p] = $mapa;
  103. $p++;
  104. }
  105. }
  106. }
  107. $p++;
  108. }
  109.  
  110. foreach($search_tab_vis as $keys => $line)
  111. {
  112. //if ( in_array($keys, $key) )
  113. //{
  114. $a = explode("\t", $line, 7);
  115. //}
  116. }
  117.  
  118. //$search_tab_vis[0] = "taTA\tTorBa\tLuterkINg\tMiedzianE\tkUKurYdza\toRFeuSz";
  119. //$search_tab_vis[1] = "taddTA\tTdasdorBa\tLusadterkINg\tMieffdzianE\tkUKasfurYdza\toRFeuddaSz";
  120. $search_tab = array_map('strtolower' ,$search_tab);
  121.  
  122. $_GET['sort'];
  123. $searching_vis = $_POST['search'];
  124. $searching = strtolower($searching_vis);
  125. $searching = "/".$searching."/";
  126. echo 'Wynik wyszukiwania dla frazy: <b>'.$searching_vis.'</b><br />';
  127.  
  128. $tw = preg_grep($searching ,$search_tab);
  129. $tw2 = preg_grep($searching ,$search_tab_map);
  130.  
  131. //var_dump($tw2);
  132. //echo '<pre>';
  133. //print_r($tw);
  134. //echo '</pre>';
  135.  
  136. // ============================= Wyciagniecie KEY'ow znalezionych wierszy =============
  137. $ids = 0;
  138. foreach($tw as $keys => $war)
  139. {
  140. $key[$ids] = $keys;
  141. $ids++;
  142. }
  143.  
  144. $ids = 0;
  145. foreach($tw2 as $keys => $war)
  146. {
  147. $key2[$ids] = $keys;
  148. $ids++;
  149. }
  150.  
  151. // ======================== OBLICZANIE ILOSCI MAP Z FRAZA =====
  152.  
  153. foreach($tw2 as $keys => $value)
  154. {
  155. $mapa_nr = $value;
  156. if(!empty($mapa_nr))
  157. {
  158. if(isset($aTOP[$mapa_nr])){
  159. $aTOP[$mapa_nr]++;
  160. }else{
  161. $aTOP[$mapa_nr] = 1;
  162. }
  163. }
  164.  
  165. }
  166.  
  167.  
  168. foreach($search_tab_vis as $keys => $line)
  169. {
  170. if ( in_array($keys, $key) )
  171. {
  172. $a = explode("\t", $line, 7);
  173. /*
  174. // ===================================================
  175. $mapa_nr = $a[0];
  176.  
  177. if(!empty($mapa_nr))
  178. {
  179. if(isset($aTOP[$mapa_nr])){
  180. $aTOP[$mapa_nr]++;
  181. }else{
  182. $aTOP[$mapa_nr] = 1;
  183. }
  184. }
  185. */
  186. // ===================================================
  187. $nick_nr = $a[1];
  188.  
  189. if(!empty($nick_nr))
  190. {
  191. if(isset($bTOP[$nick_nr])){
  192. }else{
  193. $bTOP[$nick_nr] = $mapa_nr;
  194. }
  195. }
  196. }
  197. }
  198. $aTOPcount = count($aTOP);
  199. $record = count($tw) + $aTOPcount;
  200.  
  201.  
  202. echo 'znalezionych wynikow:<b> '.$record.'</b><br /><hr>';
  203.  
  204.  
  205.  
  206. echo 'w tym: <br /><i>znalezionych Map</i>:<b> '.$aTOPcount.'</b><br />';
  207.  
  208. if(is_array($aTOP))
  209. {
  210. $c = 1;
  211. foreach($aTOP as $nMap => $iRek)
  212. {
  213.  
  214. echo '<font size="-2">- <a href="stats_ma.php?map='.$nMap.'">'.$nMap.'</a></font><br />';
  215. $c++;
  216. }
  217. }
  218.  
  219. $bTOPcount = count($bTOP);
  220. echo '<br /><hr><i>znalezionych Nickow lub wartosci przypisane do Nick`a</i>:<b> '.$bTOPcount.'</b><br />';
  221.  
  222. if(is_array($bTOP))
  223. {
  224. $c = 1;
  225. foreach($bTOP as $nMap => $iRek)
  226. {
  227. echo '<font size="-2">- '.$nMap.'</font><br />';
  228. $c++;
  229. }
  230. }
  231.  
  232. //var_dump ($key);
  233. // str_replace <span style="background-color: #ccffff">
  234.  
  235. // ============= WYSWIETLENIE ==============================================================
  236.  
  237. echo '<br /><br /><table border="0" align="center" ><tr align="center" class="tablehead">';
  238. echo '<td align="center"><b>Nazwa Mapy</b></td><td align="center"><b>Nick Skoczka</b></td><td align="center"><b>SteamID</b></td><td align="center"><b>Data</b></td><td align="center"><b>Ilosc CP</b></td><td align="center"><b>Scout</b></td><td align="center"><b>Czas</b></td></tr>';
  239. foreach($search_tab_vis as $keys => $line)
  240. {
  241. if ( in_array($keys, $key) )
  242. {
  243. //$a = str_replace($searching_vis, "<span style='background-color: #ccffff'>".$searching_vis."</span>" , $a);
  244. //$a = str_replace("STEAM", "<span style='background-color: #ccffff'>STEAM</span>", $a);
  245. $a = explode("\t", $line, 7);
  246. $czas = sek2min($a[6]);
  247. echo '<tr align="center" class="table"><td><a href="stats_ma.php?map='.$a[0].'">'.$a[0].'</a></td><td align="center"><a href="stats_pa.php?player='.$a[1].'&sort=0&sid='.$a[2].'">'.$a[1].'</a></td><td align="center"><font size="-2">'.$a[2].'</font></td><td align="center"><font size="-3">'.$a[3].'</font></td><td align="center">'.$a[4].'</td><td align="center">'.$a[5].'</td><td align="center">'.$czas.'</td></tr>';
  248. }
  249. }
  250. echo '</table><br />';
  251. }
  252.  
  253. function sek2min($sek)
  254. {
  255. $minuty = floor($sek/60);
  256. $sekundy = $sek%60;
  257. if($minuty < 10) $minuty = sprintf("0%d", $minuty);
  258. if($sekundy < 10) $sekundy = sprintf("0%d", $sekundy);
  259. return $minuty.':'.$sekundy;
  260. }
  261. ?>
  262. </body>
  263. </html>



Mógłby ktoś mi pomóc i sprawdzić co tu jest źle ?

Z góry dzięki.
Cysiaczek
Zrób var_dump($key), bo wg. komunikatu to nie jest tablica.
http://pl2.php.net/manual/pl/function.in-array.php
GSlayeR
Zapomniałem dodać, że jestem w tym temacie zielony więc mogę jedynie coś zepsuć ;s

Cysiaczek
Hmm... no to skoro boisz się zepsuć, to jakim cudem jesteś lub chcesz być programistą, hę?
Ten "Spaghetti code" trzeba debugować ręcznie, uruchamiając kod co chwila. Nawet nie wiadomo jakie tam dane są przetwarzane.
Po prostu daj:
  1. foreach($search_tab_vis as $keys => $line)
  2. {
  3. var_dump($key); // o tę linijke wstaw
  4. if ( in_array($keys, $key) )
  5. {
  6. $a = explode("\t", $line, 7);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.