Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Ordinare in base alla congruenza

    ragazzi,

    in uno dei miei siti uso questo codice per selezionare i risultati delle ricerche

    eseguo una query in sql su db mysql così

    codice:
    ingrediente=request("ingrediente")
    
    QueryString = replace(ingrediente,"'"," ")
    	QueryWords  = Split( QueryString )
    	strIndent   = "               "
    
     sql = "SELECT * FROM ricette WHERE"
          
     sql=sql &" ingredienti LIKE '%" & QueryWords( 0 ) & "%'"			' Prima
    	For i = LBound( QueryWords ) + 1 to UBound( QueryWords )
    		If QueryWords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
    			If uCase( QueryWords( i-1 ) ) = "OR" Then
    				sql = sql & " OR ingredienti LIKE '%" & QueryWords( i ) & "%'"
    			Else
    				sql = sql & " AND ingredienti LIKE '%" & QueryWords( i ) & "%'"
    			End If
    		End If
    	Next
     
          sql = sql &" LIMIT " & (currentPage - 1) * pageSize & ", " & pageSize
    supponendo che io inserisca nella textbox della ricerca la parola "funghi formaggio"

    la query stampata diviene quindi

    codice:
    sql = "SELECT * FROM ricette WHERE ingredienti like '%funghi%' and ingredienti like '%formaggio%' LIMIT x,x"
    dove x e x non ci interessano almeno in questa sede


    ora io posso ordinare i risultati in base alla congruenza quindi ipotizzo di visualizzare prima i record che contengono nel campo ingredienti ripetute più volte le keys cercate.. o meglio ancora (ma forse è troppo) le keys che compongono la maggiorparte del campo ingredienti in misura percentuale.

    Grazie a chi vorrà aiutarmi

    Rik
    Parafarmacia online, tantissimi prodotti tutti in un click

  2. #2
    ehm... si dice congruenza o congruità?
    Parafarmacia online, tantissimi prodotti tutti in un click

  3. #3

    si puo' fare, esiste una query specifica... mi pare.

    cerca bene nel forum anch'io avevo chiesto ed avevo avuto risposta...

  4. #4


    Ci ho perso mezzora ieri e non ho trovato nello specifico ciò che cercavo... secondo me dovrebbe essere un order by un po strano... a nessuno viene in mente niente?

    Rik
    Parafarmacia online, tantissimi prodotti tutti in un click

  5. #5

  6. #6
    Prova a ricercare come eseguire ricerche full text......cosi nella query puoi usare delle funzioni mysql che ti danno un valore numerico (attinenza della ricerca) in modo che ordini per questo valore
    jake

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.