Tag cloud van tags in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Innovatieve, nauwkeurige Senior PHP Developer voor

Eind jaren ’90 is dit bedrijf opgericht. Ze hebben zich altijd beziggehouden met het ontwikkelen van software voor overheidsinstanties. Dit zijn instanties waaronder bijvoorbeeld ook onder andere : de belastingdienst, burgerszaken, verschillende bedrijven, notarissen, incassobureau’s en ook nog bewindvoerders. Momenteel tellen ze 20 medewerkers, waarvan 2/3 deel allemaal developers zijn. Doordat ze de enigste aanbieder van dit soort software op de markt zijn, groeien ze erg hard. Door de enorme groei, hebben ze dan ook concrete groeiplannen in het verschiet. Functie-omschrijving Het bedrijf wordt door allerlei instanties ingeschakeld. Tegenwoordig wordt alles digitaal geregeld en gezien de essentie van dit soort

Bekijk vacature »

Rick Okkersen

Rick Okkersen

20/08/2018 11:54:53
Quote Anchor link
Hi,

ik heb een database met daarin een tabel met blog posts. De tabel ziet er ongeveer zo uit: (met nog een paar kolomen, maar die maken niet uit!)

+---+-----+-----+
| id | title | tags |
+---+-----+-----+
| 1 | test | test, testen|
+---+----+------+
enz.

Nu heb ik de volgende code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="widget tags">
                        <h3>Tag Cloud</h3>
                        <ul class="tag-cloud">
                            <li><a class="btn btn-xs btn-primary" href="#">Apple</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Barcelona</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Office</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Ipod</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Stock</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Race</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">London</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Football</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Porche</a></li>
                            <li><a class="btn btn-xs btn-primary" href="#">Gadgets</a></li>
                        </ul>
                    </div>

Hoe moet ik deze tags omzetten?
Gewijzigd op 20/08/2018 11:56:37 door Rick Okkersen
 
PHP hulp

PHP hulp

22/09/2018 02:24:51
 
- Ariën -
Beheerder

- Ariën -

20/08/2018 12:05:32
Quote Anchor link
Je bedoelt dat je de in jouw voorbeeld dus jouw twee tags moet laten zien?
Zor er eerst voor dat je het veld netjes ophaalt door te fetchen, zoals je altijd doet met het ophalen van data uit een database. Ik neem aan dat je dit wel kan ;-)?

Dat moet je explode gebruiken op de komma op het tags veld. Dan creëer je een nieuwe array met je twee tags die je met foreach kan doorlopen. Vergeet niet even trim te gebruiken op de tags om de eventuele overtollige spaties voor- en achteraan te verwijderen.
 
Thomas van den Heuvel

Thomas van den Heuvel

20/08/2018 12:20:29
Quote Anchor link
Of nog beter, introduceer een koppeltabel. Nu zit de data versleuteld in je database. Je kunt nu op bepaalde vragen zoals "hoe vaak wordt een tag gebruikt", of "wordt de tag uberhaupt gebruikt" geen antwoord geven zonder al die versleutelde data uit te pakken en te inspecteren.

Ik zou persoonlijk ook niet voortborduren op deze (m.i. slechte) oplossing, maar dit fatsoenlijk oplossen mits je daartoe in de gelegenheid bent.

Kommagescheiden data in je database kan soms handig zijn, maar in dit geval levert het waarschijnlijk meer problemen op dan dat het oplost.
 
- Ariën -
Beheerder

- Ariën -

20/08/2018 12:43:42
Quote Anchor link
Wat Thomas benoemt doe ik ook in mijn CMS-systeem:
Alle tags sla ik op in een tabel tags met een primaire Auto Increment ID erbij. Als ik een tag aan een artikel wil koppelen gebruik ik daarvoor een koppeltabel tags_items met het ID van de tag, en het ID van het artikel en eigenlijk ook nog en Type-veld voor het soort artikel (review, nieuws, video).

(Ik kan alle items normaliseren door voor deze drie een items tabel te maken, en daarin te benoemen wat voor item het is. Maar dit is wat legacy-code wat ik ooit nog eens ombouw.)

'Thats it' qua databasestructuur voor wat betreft de tags.

Het voordeel is als ik een tag aan een item wil koppelen, dat ik gebruik kan maken van een autocomplete-systeem. Dus ik voorkom dat ik een typefout kan maken of een tag gebruik die op een andere tag lijkt door een vervoeging (installatie v.s installeren).

Voor dat laatste kan je ook een synoniementabel maken, maar dat vergt een hoop extra onderhoud aan de content. Goede oplettendheid van de redacteur is gewoon belangrijk, en het kiezen van de bestaande en gebruikte tags uit de auto-complete.
Gewijzigd op 20/08/2018 12:46:30 door - Ariën -
 
Rick Okkersen

Rick Okkersen

20/08/2018 13:07:14
Quote Anchor link
Wat ik bedoel is dat ik dus meerdere blog posts heb met verschillende tags die mert kommas gescheiden zijn

post 1: hallo, hoi
post 2: hey
post 3: hallo, hey

Ik moet dus deze tags in een "tag cloud" zien te krijgen die er dan ongeveer zo uitziet: (met html code van hierboven)

hey hoi hallo
 
- Ariën -
Beheerder

- Ariën -

20/08/2018 13:20:30
Quote Anchor link
Heb je al naar mijn bericht van 12:05:32 gekeken?

En moet de tag-cloud alle tags bevallen, of enkel van de bewuste post?
Als het om alle tags gaat, dan zulk je toch beter moeten normaliseren, zoals Thomas en ik uitleggen.
Gewijzigd op 20/08/2018 13:22:36 door - Ariën -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.