Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Łączenie duplikatów (tagów)
maly_pirat
post 18.07.2009, 14:13:12
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Cześć.

Utworzyłem dość nietypowy system tagów (dla newsów) - otóż dodałem nową kolumnę w tabeli: newsy;
Kod
news_tag` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',


I tam umieszczam wpisy, a przy wyświetlaniu ich rozbijam je (oddzielam je za pomocą explode).
Utworzyłem nowe zapytanie, generujące 5 losowych tagów:
  1. <?php
  2. $sql    = "SELECT news_tag FROM newsy ORDER BY rand() LIMIT 0,5";
  3. // mysql_query
  4. // pętla while
  5.  
  6. // w pętli while oddzielamy tagi
  7.        $tags = explode(",", $row['news_tag']);        
  8.        for($i=0;$i<count($tags);$i++)
  9.        {
  10.            $news_tags = (($news_tags) ? $news_tags . ' , ' : '') . '<a href="'.("tags/".rawurlencode(strtolower(trim(($tags[$i]))))).'"">' . strtolower($tags[$i]) . '</a>';
  11.        }
  12. ?>


Niby wszystko działa, wyświetla losowe tagi - tylko powstają duplikaty np. forum, php, mysql, forum, kodowanie stron, php

Chciałbym aby duble "łączyły się" i jeśli np. wpis X został zdublowany np. 5 razy to ma go wyświetlić w postaci:
<b>X</b>

Tylko w jaki sposób zabrać się za to?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Foxx
post 18.07.2009, 14:47:48
Post #2





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Użyj array_unique, coś w stylu:

  1. <?php
  2. $tags = explode(",", $row['news_tag']);    
  3. $tags = array_unique($tags);
  4. ?>
Go to the top of the page
+Quote Post
maly_pirat
post 18.07.2009, 16:27:44
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Zamiast tagów, wyświetla
Kod
Array Array Array
Go to the top of the page
+Quote Post
erix
post 18.07.2009, 16:29:39
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




var_dump" title="Zobacz w manualu PHP" target="_manual i?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
maly_pirat
post 18.07.2009, 16:50:02
Post #5





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


No dobra, skleiłem to w całość:
  1. <?php
  2. $tags     = explode(",", $row['news_tag']);
  3.        $tags    = array_unique($tags);
  4.        for($i=0;$i<count($tags);$i++)
  5.        {
  6.            $news_tags = (($news_tags) ? $news_tags . ' , ' : '') . '<a href="'.("tags/".rawurlencode(strtolower(trim(($tags[$i]))))).'" title="ProXion ' . $tags[$i] .'">' . strtolower($tags[$i]) . '</a>';
  7.            $news_tags    = var_dump($news_tags);
  8.        }
  9. ?>


Jednak wyświetla mi wszystko w postaci:
Kod
string(82) "forum"
string(55) "baza danych"
itd


Da się w jakiś sposób usunąć te string(X) wraz z " ?
Go to the top of the page
+Quote Post
erix
post 18.07.2009, 16:54:11
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Spokojnie, var_dump" title="Zobacz w manualu PHP" target="_manual jest do wyświetlenia zawartości. tongue.gif

Po prostu przypisz zmienną, skoro już wszystko ok.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
maly_pirat
post 18.07.2009, 17:02:45
Post #7





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Usunąłem var_dump(), więc jest tylko array_unique + reszta kodu z pętli for.
Wyświetla następująco: Array , forum Array , baza danych - gdzie pogrubione to są tagi
Go to the top of the page
+Quote Post
erix
post 18.07.2009, 17:45:26
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No to użyj var_dump " title="Zobacz w manualu PHP" target="_manual i zobacz, co jest w tej tablicy... dry.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:26