Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem ze zliczaniem ilości wystąpień wyników
Forum PHP.pl > Forum > Przedszkole
mefistofeles
Napisałem prosty skrypcik do sprawdzania pozycji na google i wszystko świetnie działa.
Teraz chciałem go rozbudować o funkcje pokazującą ilość miejsc w 1 dziesiątce:

  1. (...)
  2. $iq=0;
  3. $ill=0;
  4. $found = false;
  5. foreach($return as $val)
  6. {
  7. $iq++;
  8. if ( strstr($val[0], $site)) {echo '<tr><td style="border: 1px solid #ccc; background:#d2d2dd;">'.$key[$i]. ' </td><td style="border: 1px solid #ccc; background:#ddd;"> '.$iq.' miejsce</td></tr>';
  9.  
  10. if ($iq<11) {
  11. $ill=$ill+1;
  12. echo $ill;
  13. }
  14.  
  15. $found = true;
  16. break;
  17. }
  18. }
  19. if (!$found) {
  20. echo '<tr><td style="border: 1px solid #ccc; background:#d2d2dd;">'.$key[$i].'</td><td style="border: 1px solid #ccc; background:#ddd;"> > 100!</td></tr>';
  21. }
  22.  
  23.  
  24.  
  25. }
  26. (...)



Ta część:

  1. if ($iq<11) {
  2. $ill=$ill+1;
  3. echo $ill;
  4. }


powinna spowodować takie zdarzenie, że jeśli wynik jest <11 to do $ill dodawane jest 1
W sumie po zakończeniu pętli powinna znajdować się tam ilość słów które są w 1 dziesiątce, jednak tak nie jest.

Po prostu drukuje mi tyle razy cyfre 1 ile jest słów w 1 dziesiątce a nie o to chodzi.
Co jest nie tak ?

Z góry dzięki za pomoc



Pomoże ktoś ?
nospor
Cytat
Po prostu drukuje mi tyle razy cyfre 1 ile jest słów w 1 dziesiątce a nie o to chodzi.
To znaczy ze ten kod:
$ill=0;
i to co pod nim wykonywane jest w pętli. Za kazdym obrotem pętli $ill jest zerowane smile.gif
mefistofeles
No dokładnie, ale jak to przenieść poza pętle, albo zwracać wynik w inny sposób bo główkuje i główkuje i nic ...
krispak
Wywal to " break;" i zobacz
mefistofeles
Próbowałem, bez zmian ...
krispak
A nad foreach nie masz innej petli?
mefistofeles
Tak to wygląda:

  1. echo '<table frame="box" style="border:0px;"><tr><td style="border: 1px solid #ccc; background:#bbb;">Słowo</td><td style=" background:#bbb;color:#fff;border: 1px solid #ccc;">Poyzcja</td></tr>';
  2.  
  3. for ($i=0;$i<=$cntk;$i++)
  4. {
  5. $key[$i]=str_replace("\r\n", "", $key[$i]);
  6. $key[$i]=str_replace("\n", "", $key[$i]);
  7. $key[$i]=str_replace("\r", "", $key[$i]);
  8. //$key[$i]=str_replace(" ", "", $key[$i]);
  9.  
  10. //$keys[$i]=(explode(' ',$key[$i]));
  11. //szukane slowo
  12. //$keywords = $key[$i];
  13.  
  14.  
  15.  
  16. $keys[$i]=(explode(' ',$key[$i]));
  17. $keys[$i]=str_replace(" ", "", $keys[$i]);
  18.  
  19.  
  20. // LICZNIIK ILOSCI WYNIKOW W GOOGLE
  21.  
  22.  
  23.  
  24. $url='http://www.google.pl/search?q='.$keys[$i][0].'+'.$keys[$i][1].'+'.$keys[$i][2].'+'.$keys[$i][3].'+'.$keys[$i][4].'&hl=pl&lr=lang_pl&safe=off&tbs=lr:lang_1pl&prmd=ivl&ei=mYIfTMj4MYKe_gb0j8SlDQ&start=0&sa=N&num=100';
  25.  
  26. $file = file_get_contents($url);
  27.  
  28. $pattern = '%<h3 class="r"><a href="(.*?)" class=l%i'; //wyrazenie do parsowania
  29. preg_match_all($pattern,$file,$return,PREG_SET_ORDER);
  30.  
  31. //wyswietlamy wyniki
  32. $iq=0;
  33. $found = false;
  34. $ill=0;
  35.  
  36. foreach($return as $val)
  37. {
  38. $iq++;
  39.  
  40. if ( strstr($val[0], $site)) {echo '<tr><td style="border: 1px solid #ccc; background:#d2d2dd;">'.$key[$i]. ' </td><td style="border: 1px solid #ccc; background:#ddd;"> '.$iq.' miejsce</td></tr>';
  41.  
  42. if ($iq<11) {
  43. $ill = $ill+1;
  44. echo 'ILOSC'. $ill;
  45. }
  46.  
  47. $found = true;
  48. break;
  49. }
  50.  
  51. }
  52.  
  53.  
  54. if (!$found) {
  55. echo '<tr><td style="border: 1px solid #ccc; background:#d2d2dd;">'.$key[$i].'</td><td style="border: 1px solid #ccc; background:#ddd;"> > 100!</td></tr>';
  56. }
  57.  
  58.  
  59.  
  60. }
  61.  
  62.  
  63. echo '<tr><td style="border: 1px solid #ccc; background:#bbffbb;"><b>Linki</b></td><td style="border: 1px solid #ccc; background:#ddffcc;"><b>'.$linki.'</b></td></tr>';
  64. echo '<tr><td style="border: 1px solid #ccc; background:#bbffbb;"><b>Podstrony</b></td><td style="border: 1px solid #ccc; background:#ddffcc;"><b>'.$stronyzaind.'</b></td></tr>';
  65.  
  66.  
  67. echo '</table>';
nospor
No to wyrzuc te
$ill=0;
przed główną pętle. No przeciez do tego zmierzał moj wczesniejszy post.
mefistofeles
No tak smile.gif
Jak przeniosłem $ill=0;
przed 1 petle to dostaje taki wynik 1,2,3,4,5 czyli chodzi o to 5 :]
ale jak otrzymać tylko to 5 ?
nospor
ale ty zastanawiasz się czasami nad tym co robisz czy tylko strzelasz?
Wywal te echo $ill z petli a daj je poza pętlą...
mefistofeles
No przecież.
Sorki, ale juz od tylu godzin wpatruje siew ten skrypt, ze nawet nie zauwazylem tej 1 petli co dopiero tego;]

Dzięki chłopaki za pomoc exclamation.gif
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.