Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie $numrows w pętli
Forum PHP.pl > Forum > PHP
Karioka
Witajcie !

Mam skrypt, który zapisuje słowa kluczowe po których internauci weszli na moją stronę. W drugim pliku wyświetlam listę tych słów, posegregowanych malejąco wg liczby wejść

  1. <?php
  2. $tab = file("googlekeywords.txt");
  3. $suma = count($tab);
  4. print "<b>Suma skierowań: $suma</b><br><br>";
  5. foreach($tab as $linia) {
  6. $ile["$linia"]++;
  7. }
  8. arsort($ile, SORT_NUMERIC);
  9.  
  10. while(list($indeks, $wartosc) = each ($ile)) {
  11.  
  12. $q = $indeks;
  13.  
  14. $wyrazy = preg_split("/ /", $q, -1, PREG_SPLIT_NO_EMPTY);
  15. foreach($wyrazy as $q) $pytania[] = "((desc LIKE '%$q%') OR (keys LIKE '%$q%') OR ".
  16. "(link LIKE '%$q%') OR (title LIKE '%$q%'))";
  17. $where = implode(" AND ", $pytania);
  18. $pytanie = "SELECT * FROM pliki WHERE $where";
  19. $numrows = mysql_num_rows(mysql_query($pytanie));
  20.  
  21. echo "$indeks - $wartosc - W bazie: $numrows<br />";
  22. ?>


Teraz chciałabym, aby przy wyświetlaniu listy skierowań skrypt sprawdzał w bazie liczbę plików, które mają w desc, keys, link i titile dane słowo.

Niestety moja wiedza się skończyła. Skrypt zamiast wrzucać w zapytanie różne $indeks, tak jakby do każdego zapytania dodawał ich więcej. Zdarza się, że w jednym zapytaniu w desc i keys wrzuci jedna słowo a w link i title już inne.

W wykonaniu "$indeks - $wartosc - W bazie: $numrows<br />"; wszystko gra. Lista pokazuje pliki wg ilości występowania.

Czy ktoś mógłby mi coś doradzić? Kombinowałam i nic, a wolę nie zapychać mysql błednymi zapytaniami.

Pozdrowienia,
Karola
nexis
Nie używaj słów kluczowych jako pól tabeli MySQL - np. desc, ponieważ ma ono zupełnie inne znaczenie i może, a nawet powinno, prowadzić do problemów w twoim przypadku.
Karioka
Nazwy tabel to tylko przykład. Wszystko gra połowicznie. Np. jak zmienię:

  1. <?php
  2. $tab = file("googlekeywords.txt");
  3. ?>


na

  1. <?php
  2. $tab[]="slowo1";
  3. $tab[]="slowo2";
  4. ?>


To w pętli potrafi zliczyć ilość slowo1 w bazie, ale już slowo2 nie. Coś jest nie tak z pętlą, ale nie wiem co sad.gif

Skoro pada już przy $tab[1] to dlatego nie działa też, gdy $tab pobierany jest w pliku .txt Tam ilość linii to niekiedy 1000.
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.