Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Wybieranie danych z tablicy i liczenie ile razy się powtórzyły, Tak znowu głupawy problem xd
-Stypula-
post
Post #1





Goście







Więc mam w bazie danych kolumnę "tagi" w której mam dane w formacie "tag1, tag2, tag3, (...)" i chcę żeby mi się wyświetlało 5 słów które się najczęściej powtarzają (ze wszystkich rekordów pobranych z pola "tagi").
Jeśli mnie nadal nie rozumiecie to podam przykład:
Mam pewną tabelę w której mam pola id i tagi. Rekordy wyglądają tak:
  1. <?php
  2. 1 | rock, punk, the offspring, americana
  3. 2 | rock, coldplay, death and all his friends
  4. 3 | a perfect circle, the noose
  5. 4 | green day, rock, american idiot
  6. ?>

Pobieram tagi za pomocą:
  1. mysql_query("select tagi as tagi from tabela")
następnie robię z tego tablicę za pomocą explode (usuwam przecinki):
  1. <?php
  2. $tagi=explode(", ", $tagi);
  3. ?>
. I teraz z powstałej tablicy "$tagi" chcę wyciągnąć wszystkie rekordy i policzyć ile razy się który powtarza a następnie wyświetlić pięć które użyte zostały najczęściej i wyświetlić je. Kolejność nie ma znaczenia (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) .
Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
-Stypula-
post
Post #2





Goście







Ok. Mam coś takiego:
  1. <?php
  2. $tag='';
  3. $tagi=mysql_query("select * from utwory");
  4.        if(mysql_num_rows($tagi)>0){
  5.    while($r = mysql_fetch_assoc($tagi)) {  
  6. $tag=$r['tagi'].", ".$tag;
  7.    }
  8.                $tagi=explode(", ", $tag);
  9. $ile=array_count_values($tagi);
  10. arsort($ile);
  11. foreach ($ile as $key => $val) {
  12.    echo "$key\n";
  13. }
  14. ?>

Ale jak wypisać tylko pierwszych pięć wierszów z tego $ile? Bo foreach wypisuje wszystkie ;\ A moje
  1. <?php
  2. foreach ($ile as $key => $val<5){
  3. ?>
wywala błąd ; D
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: 28.12.2025 - 13:23