login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Array probleem (Opgelost)

Offline arneman - 15/12/2009 11:44
Avatar van arnemanNieuw lid Ik heb een site gemaakt waarop ik een aantal nieuwsartikels wil posten. Ik haal deze met PHP op uit MySQL. in mijn tabel Articles zit een veld met keywords. In principe is dit gewoon een lijst gescheiden door een puntkomma: bv

Twitter;Facebook;Web2.0

Ik stop al deze keywords in een array, haal de dubbels eruit en sorteer ze vervolgens alfabetisch.

Ik zit nu met het probleem dat niet alle keywords worden afgedrukt. Ofwel is er iets fout met het afdrukken zelf, ofwel heb ik de array fout gevuld. Ik zie het alvast niet, ik hoop dat jullie me kunnen helpen.

De code vind je hier: http://plaatscode.be/138205/

7 antwoorden

Gesponsorde links
Offline Rik - 15/12/2009 11:55
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik zie niet echt fouten in je code. Wel een aantal verbeterpunten:
- maak een aparte tabel met tags en één met artikel_tags waarin je die koppelt aan de artikelen
- gebruik PHP.net: array_merge om de tags van een rij toe te voegen aan de grote array
- doe eerst array_unique en dan pas sorteren, dat zou iets sneller moeten zijn

Dat eerste punt is eigenlijk het belangrijkste, want dit is geen goed genormaliseerde manier om je gegevens op te slaan.
Bedankt door: arneman
Offline Richard - 15/12/2009 11:55
Avatar van Richard Crew algemeen Kijk eerst hier eens naar: http://www.yapf.net/index.php/Database_ontwerp_101
Offline arneman - 15/12/2009 12:10
Avatar van arneman Nieuw lid Qua databaseontwerp is het inderdaad juister als ik een aparte tabel maak, maar dan moet ik toch nog steeds die array opslaan in mijn tabel 'Artikels'?

En ga ik dan niet hetzelfde probleem hebben, alleen ga ik de woorden vervangen door cijfers.

Ik ga het alvast even proberen, jullie horen het gevolg wel.

Goed moment om even die 'Bedankt' knop te proberen 
Offline Richard - 15/12/2009 12:12
Avatar van Richard Crew algemeen Nee, dan hoef je geen array op te slaan.

Wat je doet:

artikel (artikel_id, artikel_naam, artikel_tekst)
tag (tag_id, tag_naam)
artikel_tag (artikel_id, tag_id)

Zo koppel je alle tags aan je artikelen, en kun je doodeenvoudig ophalen welke tags bij een artikel horen of welke artikelen bij een bepaalde tag horen. :]
Bedankt door: arneman
Offline arneman - 15/12/2009 14:44
Avatar van arneman Nieuw lid Dit lijkt inderdaad juist te werken! bedankt hiervoor!

Nu nog mijn query om de top 10 keywords eruit te krijgen in orde maken en de site kan weer online!

bedankt!
Offline Richard - 15/12/2009 14:46 (laatste wijziging 15/12/2009 14:46)
Avatar van Richard Crew algemeen Makkie 

  1. SELECT tag_naam,
  2. COUNT(1) AS aantal
  3. FROM artikel_tag
  4. INNER JOIN tag
  5. USING(tag_id)
  6. GROUP BY tag_naam
  7. ORDER BY aantal DESC
  8. LIMIT 10


:-)
Bedankt door: arneman
Offline arneman - 16/12/2009 09:52
Avatar van arneman Nieuw lid Je ik heb 'm ondertussen 

Dit topic mag eigenlijk dicht ;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.174s