Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Chmura tagów
Forum PHP.pl > Forum > Przedszkole
artekp999
Piszę chmurę tagów i napotkał mnie pewien problem. Otóż mam taki kod wypisuje on wszystkie moje tagi z bazy, jak mam zrobić aby dany tag który się powtarza wypisał się tylko jeden raz.

  1. $zapytanie = "SELECT tagi FROM artykuly";
  2. if ($r = mysql_query ($zapytanie)) {
  3.  
  4. while ($record = mysql_fetch_array($r)) {
  5. $tagi = $record['tagi'];
  6. $tab = explode(",", $tagi);
  7. $n = count($tab);
  8.  
  9. for ($i=0;$i<$n; $i++) {
  10.  
  11. echo ''.$tab[$i].' ';
  12.  
  13. }
  14.  
  15. }
  16. }
Kshyhoo
Przykład:
  1. CREATE TEMPORARY TABLE tmp SELECT DISTINCT * FROM duplikaty;
  2. TRUNCATE TABLE duplikaty;
  3. INSERT INTO duplikaty SELECT * FROM tmp;
  4. DROP TABLE tmp;

  1. linia/polecenie tworzy tymczasową tabelę o nazwie tmp, do której trafia niezduplikowana zawartość naszej tabeli z duplikatami. Duplikaty eliminuje polecenie DISTINCT.
  2. linia czyści zawartość tabeli, która przechowuje duplikaty.
  3. linia wstawia do wyczyszczonej tabeli z byłymi duplikatami zawartość tabeli tymczasowej, gdzie duplikatów już nie ma.
  4. linia usuwa tabelę tymczasową. Gotowe!
kefirek
  1. <?php
  2. $zapytanie = "SELECT tagi FROM artykuly";
  3. if ($r = mysql_query ($zapytanie)) {
  4.  
  5. while ($record = mysql_fetch_array($r)) {
  6. $tagi = $record['tagi'];
  7. $tab = explode(",", $tagi);
  8.  
  9. $tab = array_unique($tab);
  10.  
  11. $n = count($tab);
  12.  
  13. for ($i=0;$i<$n; $i++) {
  14.  
  15. echo ''.$tab[$i].' ';
  16.  
  17. }
  18.  
  19. }
  20. }
  21. ?>
artekp999
kefirek twój sposób nie działa przykład
Youtube Internet Hacking Internet Facebook Internet Internet Grafika Online Programy HTML5 Internet Test Internet Drukarka Google Bezpieczeństwo Internet Youtube Wi-Fi luka Internet Pascal program Pascal program c++ program kalkulator Komputer Windows tryb Google Internet Pascal program kalkulator Windows luka Internet atak Pascal program lokata Google Internet Przeglądarki Chrome Firefox MSIE Opera Safari Strona Interet Przeglądarka Sprzęt elektronika Internet Hasło Chrome Firefox IE Internet Przeglądarki Chrome Windows Pascal program Internet Windows Windows Chrome Internet Grafika Ikony Dysk twardy USB Hasło tutorial Dysk twardy

a twój Kshyhoo jeszcze nie testowałem
kefirek
Tak powinno działać
  1. <?php
  2. $zapytanie = "SELECT tagi FROM artykuly";
  3. if ($r = mysql_query ($zapytanie)) {
  4.  
  5. $tags = array();
  6.  
  7. while ($record = mysql_fetch_array($r)) {
  8. $tagi = $record['tagi'];
  9.  
  10.  
  11. $tab = explode(",", $tagi);
  12.  
  13. $n = count($tab);
  14.  
  15. for ($i=0;$i<$n; $i++) {
  16.  
  17. if (!in_array($tab[$i], $tags)) {
  18.  
  19. $tags[]= $tab[$i];
  20. echo ''.$tab[$i].' ';
  21.  
  22. }
  23.  
  24. }
  25.  
  26. }
  27. }
  28. ?>
artekp999
Wielkie dzięki działa!!
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.