login  Naam:   Wachtwoord: 
Registreer je!
 Forum

relevantie uitrekenen

Offline tim2005 - 26/10/2007 20:35
Avatar van tim2005Nieuw lid Beste mede leden,

Op sommige site's zie je dat ze de relevantie van een zoek opdracht weergeven. Ik ben benieuwd hoe ze dat doen.  

Klein voorbeeld van het scriptje, ik doorzoek mijn muziek database:
  1. $post_artist = 'dj';
  2. $post_title = '';
  3. $post_album = '';
  4. $post_albumyear = '2007';
  5.  
  6. $sql = "SELECT * FROM `songlist` WHERE `artist` LIKE '%".mysql_real_escape_string($post_artist)."%' AND `title` LIKE '%".mysql_real_escape_string($post_title)."%' AND `album` LIKE '%".mysql_real_escape_string($post_album)."%' AND `albumyear` LIKE '%".mysql_real_escape_string($post_albumyear)."%' LIMIT 10";
  7. $query = mysql_query($sql) or die(mysql_error());


Iemand een Tip/Idee?

Met vriendelijke groeten,
Tim

ps, kleine stukjes code waren toch toegestaan op het forum  

7 antwoorden

Gesponsorde links
Offline Stijn - 26/10/2007 21:16
Avatar van Stijn PHP expert Je kan kijken hoeveel karakters van de ingevoerde string overeen komen met de gevonden karakters.

Voorbeeld: ik type stijn in en in de database staat stijn is tof. Dan komt mijn zoekterm met 5/13 overeen (5=aantal karaters dat ik ingevoerd heb en 13 = aantal karakters gevonden). Doe die breuk maal 100 en je hebt een percentage.

(Ik werk aan een uitwerking ervan)
Offline Rik - 26/10/2007 21:29
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
En je kan misschien ook PHP.net: similar_text gebruiken?
Offline Rens - 26/10/2007 22:23
Avatar van Rens Gouden medaille

Crew algemeen
Dat word in SQL zelf gedaan.
Dit word gedaan d.m.v. "FULLTEXT searches".
http://www.site...ext_Search

Relevantie/score bepalen
Offline Stijn - 26/10/2007 23:01 (laatste wijziging 26/10/2007 23:01)
Avatar van Stijn PHP expert Mhz dat wist ik niet Rens (heb dus al die moeite voor niets in me script gestopt Als je geinteresseert bent... dit is de uitwerking van me algoritme en ook wat jij bedoelde met die woorden splitsen).
Offline tim2005 - 27/10/2007 19:45
Avatar van tim2005 Nieuw lid Iedereen bedankt voor de reactie!
Heb het een en ander lopen experimenteren, maar het is nog niet helemaal gelukt 

WANT ik heb besloten het te doen zonder database dat omdat de database gewoon daar te groot voor is.. duurd halve minuut voordat ik de pagina in beeld heb (mysql server zit niet op zelfde machine als webserver). Dus maak ik een txt file is de bedoeling..

TOTAAL EEN NIEUWE MANIER NU DUS 
  1. 1 | DJ mijn naam | cool zeg
  2. 2 | DJ anders | saai nummer 123

zo zal de file eruit komen te zien

Wat moet er gebeuren:
Hij moet de meeste overeen komenende uitzoeken

Welke variabelen zijn standaard gevuld (minimaal 1 van 2 gevuld):
$artiest
$titel

Nu moet er dus een syteem komen die het meeste overeenkomende nummer uit de file haalt (ID terug geven).

Is dit een duidelijkere/makkelijkere manier? Want mysql is dus te traag voor dit  

Gr, Tim
Offline Grayen - 27/10/2007 23:12
Avatar van Grayen PHP ver gevorderde Dan zou ik niet doen om de volgende redenen:

* Het zal evengoed langzaam zijn.
* Je moet hele database tabel om gaan zetten naar een txt bestandje. En bij elke wijziging zou dus en de mysql tabel en de txt bestand moeten worden gewijzigd.

Wat als ik jou was zou doen is een andere host zoeken die wel Mysql ondersteund. En als het op dit moment nog niet online hoeft te staan. Zou ik eerst localhost gaan werken. USB Webserver is een aanrader om snel en makkelijk een localhost te krijgen.
Offline tim2005 - 28/10/2007 00:29
Avatar van tim2005 Nieuw lid Bedankt voor je reactie.
Op localhsot is niet mogelijk ivm met veel complexer systeem  

Dankzij hulp op de chat vanmiddag is het met gelukt (met dank aan stijn en flex1984)

Gr, Tim

ps, ik reply het script nog wel 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s