Website in opbouw

Status
Niet open voor verdere reacties.
Ik begrijp uit koppel-tb-filter en de 3 filter tabellen dat je zelf de filterwoorden gaat bepalen die de bezoeker mag gebruiken?
Waarom niet een query, bijvoorbeeld WHERE .... LIKE %...% (of iets anders) zodat je die 4 tabellen niet nodig hebt, dan heb je ook geen onderhoud hieraan.
 
@aar
Ik zie genummerde velden.
Welke velden bedoel je?

@Bron
Waarom niet een query, bijvoorbeeld WHERE .... LIKE %...%
In de eerste plaats omdat niet alle bestanden doorzoekbaar zullen zijn
In de tweede plaats om minder relevante treffers die de zoekterm bevatten uit te sluiten.
In de derde plaats om problemen met afwijkende schrijfwijzes e.d. te voorkomen.
Misschien zijn er nog meer, maar ik kan er nu niet zo direct opkomen.
 
f1 = filter1, f2 = filter2, enz.
Is toch een stuk korter dan identificatiesleutel voor filter één niet waar?
 
Dan maak je natuurlijk een tabel 'filters' aan, waar je elke filter een eigen record geeft.

Lees je eens in over 'Database Normalisatie' ;-)
 
Dan maak je natuurlijk een tabel 'filters' aan
Ik zie niet in waarom.
Het eerste filter filtert een hoofdgroep.
Het tweede filter filtert een subgroep
Het derde filter is er voor het geval ik iets te kort kom.

Echter ik zie nu wel in dat ik dat nu toch misschien fout gedaan heb
en dat er misschien filters 2a, 2b, 2c, o.i.d. moet komen.

Om concreter te zijn:
filter 1 maakt onderscheid tussen Scheeovaart: Algemeen, Zeevaart, Kustvaart, Binnenvaart, enz.
Filter 2 maakt voor binnenvaart bijv. onderscheid tussen: Vrachtvaart, Passagiersvaart, Visserij, Pleziervaart, enz.
Filter 3 weet ik nog niet.
Misschien moet ik het toch anders organiseren....
Eerst maar weer eens een nachtje over slapen.
 
Ik zie niet in waarom.
etc...
Omdat je straks een vierde filter hebt, dan een vijfde, en dan later nog een zesde... En dan moet je steeds maar weer je applicatie aanpassen, en dat is iets wat je juist moet vermijden. Want het is storinggevoelig, en bovendien kan je heel lastig mooie koppelingen realiseren of mooie berekeningen erop wilt uitvoeren (aantal filters etc).
En zeg nooit dat je dit niet gaat doen, want ik heb dat vaker gehoord, en opeens willen mensen dat toch.... ;)

En het feit dat je ze een nummer geeft is ook niet echt duidelijk. Een typfout met een 3 in plaats van een 2 kan al voor een vreemde uitkomst zorgen. Als je ze gewoon netjes benoemd, dan ga je minder snel de fout in. En ook hoef je, als je een half jaar niet in de code te hebt gekeken, niet opnieuw te spieken welk nummer het was. Dus zorg altijd voor duidelijkheid in je code en je structuren!

De oplossing:
Je hebt dus filters als hoofdgroep, en voor subgroepen. In dat geval is het handig om dus een tabel te maken met alle filters.
Een mooie duidelijke tutorial over de opzet hiervan heb ik ooit eens gevonden:
https://crisp.tweakblogs.net/blog/317/formatting-a-multi-level-menu-using-only-one-query.html

Los van het feit dat het een menu maakt, realiseer je op deze manier wel eenvoudig filters, en kan je een subfilter aan de parent hangen.
Ziet er misschien ingewikkeld uit, maar als je jezelf in de wereld van array's en PHP verdiept, dan zal je het vast wel begrijpen.
En nog een voordeel: Het is lekker zuinig met een enkele query. Ik heb vaak gezien dat mensen voor dit soort 'bomen' meerdere queries gebruiken en gelimiteerd zijn aan het aantal 'sub-filters'. En dat is dan gewoon zonde, en kan op een gegeven zorgen voor een trage site.

Code:
id	parentId	name
1	0	Scheepvaart
2	0	Binnenvaart
3	0	Luchtvaart
4	1	Algemeen 
5	1	Zeevaart
6	1	Kustvaart
7      1      Binnenvaart
8      2      Vrachtvaart
9      2      Passagiervaart
10    2      Visserij
11    3      Cargovluchten
12    3      Passagiersvluchten
13    3      Recreatievluchten

Elke filter heeft in ID een oplopend ID (Auto Increment, Primairy key).
Het tweede veld parentID bepaalt of deze onder een andere filter hoort te hangen. Is het 0 dan is dit de hoofdfilter. Is dit 1, dan hoort het bij Scheepvaart.

Op deze manier kan je verticaal net zoveel filters en subfilters maken als je zelf wilt. Je kan praktisch zelfs nog eens sub-sub-filters maken.

Met deze opzet heb je volgens mij precies wat je wilt bereiken. Let er wel op dat de tutorial die ik noem verouderd is dat ze nog mysql_query() gebruiken, maar los van het feit van deze oude praktijk is de theorie uitstekend.
 
Laatst bewerkt:
Bedankt voor alle tijd die je hierin steekt.
Het is altijd een goede zaak als je aan het denken gezet wordt.

Ik kom hier later op terug.
(Ik heb nu een ander, veel lastiger probleem.
Xampp sluit MySql direct na de start weer af.)
 
Check de logfiles van MySQL... ;-)
XAMPP control panel zal ook wel wat tonen, denk ik.
 
Als je MySql als service hebt kijk dan via Start -> Services of MySql op automatisch staat.
 
Het staat op automatisch starten.

Control panel geeft:
07:56:04 [mysql] Status change detected: running
07:56:05 [mysql] Status change detected: stopped
07:56:05 [mysql] Error: MySQL shutdown unexpectedly.
07:56:05 [mysql] This may be due to a blocked port, missing dependencies,
07:56:05 [mysql] improper privileges, a crash, or a shutdown by another method.
07:56:05 [mysql] Press the Logs button to view error logs and check
07:56:05 [mysql] the Windows Event Viewer for more clues
07:56:05 [mysql] If you need more help, copy and post this
07:56:05 [mysql] entire log window on the forums

Log file geeft: zie bijlage
 

Bijlagen

  • mysql_error - kopie.txt
    220,9 KB · Weergaven: 15
Laatst bewerkt:
Blokkeer je misschien port 3306 en 3307 ?
 
Laatst bewerkt:
Geen idee :-(


Als ik
C:\WINDOWS\system32>netstat -ab
gebruik zie ik niets van dien aard.
 
Laatst bewerkt:
En als je het als service installeert? Dan draait het continu zonder dat je het via Xampp moet opstarten.

Kijk ook eens naar de EventViewer van Windows.
 
Als Xampp start voor Firefox gestart is, dan functioneert Firefox niet 100%.

Ik denk dat ik er maar niet te veel tijd aan zal besteden en Xampp opnieuw zal installeren.
 
Apart, het staat los van Firefox?
 
Als Xampp start voor Firefox gestart is, dan functioneert Firefox niet 100%.
En wat doen Edge en Chrome?

Xampp installeren en xampp als service draaien doe ik altijd "Als Administrator". Dan weet ik zeker dat het goed gaat.

Let op. Voordat je eventueel een re-install gaat doen, eerst de service eruit halen.
 
Laatst bewerkt:
Ik weet niet hoe het met de andere browsers is. Die gebruik ik alleen als ik zaken wil controleren.
Bij Firefox was het probleem dat je 'geschiedenis' kwijtraakte, als je eerst Xampp en daarna Firefox startte.
Als vervolgens de zaak stand-by gestaan had, werd bij het afsluiten van de computer ook alle geschiedenis van na de stand-by gewist.

Maar om weer even op het filter en trefwoorden idee terug te komen.

Waarom trefwoorden?
Stel je hebt een aantal bestanden die het binnenvaart weekblad Schuttevaer bevatten.
Laat je nu op die bestanden een zoekopdracht "dieselmotor" los dan sneeuwt dat ene artikel over nieuwe ontwikkelingen in zake dieselmotoren volledig onder door advertenties of verhaaltjes over schepen met dieselmotoren en advertenties van dieselmotoren te koop.
Reken maar dat dat er heel wat zijn.
Door nu een trefwoord "dieselmotor" alleen te hechten een editie met nuttige informatie bereikt men sneller een beter resultaat.

Dan het probleem met filters, categorieën, groepen of hoe men het maar noemen wilt.
Ik ben er nog niet uit.
Je zou na een hoofdindeling
Zeevaart
Kustvaart
Binnenvaart
Voor elk van deze groepen zou men misschien nog een verdere verdeling kunnen maken in de trant van
- vrachtvaart
- passagiersvaart
- veer- en lijndiensten
- pleziervaart
- overige vaartuigen
- infrastructuur
- navigatie
- voortstuwing
- scheepsbouw
- voorschriften
- overigen
en dan ben je er waarschijnlijk nog niet want veel van de categorieën zijn nog te weinig precies.
Bij de meeste van de genoemde vaartuigen vormen de onderdelen een verhaal apart en
ook zou ik roeien en zeilen niet in de zelfde groep onder willen brengen als een de stoomturbine of een moderne hybride aandrijving.
Er kan wel aardig wat met trefwoorden uitgefilterd worden, maar het moet allemaal een beetje overzichtelijk blijven en intuïtief werken.
Kortom: dat wordt nog even puzzelen.

Als men op binnenvaarttaal alleen al het "menu afbeeldingen" doorloopt, dan krijgt men via de daaraan gekoppelde submenu's misschien enig idee van de omvang van een onderwerp dat alleen al de binnenvaart vormt.
 
Eenvoudiger: een tabel "tTags" en in tabel "tBestand" een extra veld "tags".

Zo werkt het ook bij StackOverflow.
Je kan vanuit de tabel tTags één of meer woorden (tags) toevoegen aan elk record in tBestand.
Je kan zelf bepalen welke tags belangrijk zijn voor elk record.

Concept:
Code:
$qry = "WHERE tags = $zoekwoord_1"
if ($zoekwoord_2) $qry .= " AND tags = $zoekwoord_2"
if ($zoekwoord_3) $qry .= " AND tags = $zoekwoord_3"
 
Je bedoelt?
Tussen TBestand en Ttags een koppeltabel "tbestand-ttags"
en dan alles wat ik filter noemde ook als Tag opvoeren.
Klinkt goed en simpel!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan