Kom ihåg mig?
Home Menu

Menu


PHP + MySQL sökning

 
Ämnesverktyg Visningsalternativ
Oläst 2007-02-28, 22:48 #1
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Jag leter efter ett sätt att söka i en MySQL databas.

Jag vill att sökningen endast ska ske i vissa celler i databasen, som jag kan välja ut med "SELECT ...". Dessa celler innehåller text (ofta mycket text i HTML-format).
Vad jag vill är att min sökfunktion ska hitta vissa ord i dessa texter.

Känner någon till hur detta ska göras eller några färdiga skript?
Det är alltså php jag kodar i.
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-28, 23:10 #2
Lundmarks avatar
Lundmark Lundmark är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 026
Lundmark Lundmark är inte uppkopplad
Har WN som tidsfördriv
Lundmarks avatar
 
Reg.datum: Jan 2004
Inlägg: 1 026
kolla på Full-Text Search
Lundmark är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-02-28, 23:54 #3
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Det funkade med "select * from table where text like \"%$query%\"
order by text";
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-01, 00:03 #4
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Detta skript fungerade bra efter några mindre ändringar.
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-01, 10:17 #5
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Originally posted by alltinggratis@Mar 1 2007, 00:54
Det funkade med select * from table where text like %query%
order by text;
Du bör inte söka med %text%. Det är inte bra rent prestandamässigt då all text i kolumnen måste gås igenom. Använd, som Lundmark sa, Full-Text Search till sökning - som man skall göra.
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-01, 10:39 #6
Sigurds avatar
Sigurd Sigurd är inte uppkopplad
Medlem
 
Reg.datum: Apr 2004
Inlägg: 289
Sigurd Sigurd är inte uppkopplad
Medlem
Sigurds avatar
 
Reg.datum: Apr 2004
Inlägg: 289
Vad säger ni om MATCH i MySQL? Är det den optimala vägen att gå vid sökning?
Sigurd är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-01, 10:52 #7
Eddie Eddie är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 83
Eddie Eddie är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 83
Jag har gjort några direkta tester eller liknande men på större fält så tycker jag Match generellt brukar fungera snabbare än att anvädna Where .. Like och går ju dessutom att få fram relevans så att man kan sortera lite snyggare.
Eddie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-02, 11:05 #8
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Originally posted by Sigurd@Mar 1 2007, 11:39
Vad säger ni om MATCH i MySQL? Är det den optimala vägen att gå vid sökning?
Match används ju vid Full-text search. En vanlig WHERE-sats kan man ju använda om man vill leta fram något specifikt värde i en kolumn. Ett exempel är om man letar efter en specifik användare så skall man ju använda WHERE. Däremot om man söker i en text skall man använda Full-text search.
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-02, 16:18 #9
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Timofey Timofey är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2006
Inlägg: 2 041
Jag tyckte att "where ... like" fungerade väldigt bra för att söka efter en text-bit i mindre kolumner i tabellen (som inte innehåller så mycket text). Har inte testat med större texter (typ fyllda A4).
Dock stötte jag på det problemet att man får nästan alla "celler" som träffar om man söker på en bokstav. Kanske finns någon lösning för att begränsa sökfrasen till minst 3 tecken, annars visas "inga resultat"?
Timofey är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-03-02, 17:30 #10
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Originally posted by alltinggratis@Mar 2 2007, 17:18
Jag tyckte att where ... like fungerade väldigt bra för att söka efter en text-bit i mindre kolumner i tabellen (som inte innehåller så mycket text). Har inte testat med större texter (typ fyllda A4).
Dock stötte jag på det problemet att man får nästan alla celler som träffar om man söker på en bokstav. Kanske finns någon lösning för att begränsa sökfrasen till minst 3 tecken, annars visas inga resultat?
Om du vill begränsa sökfrasen till minst tre tecken och samtidigt vill använda LIKE gör du det enklast med hjälp av php-kod. Full-text search använder en variabel till att sätta minsta längden på ett ord, vanligtvis 3 eller 4.
fors är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017