PHP Centeri avaleht Skriptikogu Küsimuste-vastuste leht Teadete vaatamine ja saatmine Foorum - koht küsimiseks Otsingumootor Siit saad infot meie kohta

Kasutajanimi:  
  Parool: 
  Registreeri!   Unustasid salasõna?

Foorumid Programmeerimine PHP & MySQL MYSQL FULLTEXT otsing ?!?!
Autor Abi Postitus Abi

hanska

Postitusi: 16
Tase: 2
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
MYSQL FULLTEXT otsing ?!?!

Tõmbasin nimelt selle skripti :

http://php.center.ee/skript.php?id=1396


Tegin järgneva tabeli :

CREATE TABLE `test` (
  `id` smallint(25) NOT NULL auto_increment,
  `eesnimi` varchar(255) NOT NULL default '',
  `perenimi` varchar(255) NOT NULL default '',
  `Tulemus` smallint(255) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `eesnimi` (`eesnimi`,`perenimi`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

lisasin ka mõned andmed tabelisse :

INSERT INTO `test` VALUES (1, 'Ants', 'Käba', 23);
INSERT INTO `test` VALUES (2, 'Ants', 'Lebo', 123);
INSERT INTO `test` VALUES (3, 'Mati', 'Käba', 535);
INSERT INTO `test` VALUES (4, 'Lebo', 'Käba', 24324);
INSERT INTO `test` VALUES (5, 'Anti', 'Depressant', 6564);
INSERT INTO `test` VALUES (6, 'Luule', 'Tuulest', 234);

Kõik on kena, toimib ilusti, aga....

Tabelis on mitu samasuguse eesnimega ja perenimega erinevat isikut.

Kui ma tahan otsida näiteks isiku Ants Käba tulemusi, siis ta väljastab kõik tulemused kelle eesnimi on Ants, ka Ants lebo. Kuidas oleks võimalik, et skript kontrollib kahte välja (Eesnimi ja Perenimi) ja kui need klapivad, siis väljastab tulemuse. Kui eesnimi on Ants aga perenimi pole Käba, siis ta seda ei väljastaks. Oskab äkki keegi nõu anda.

panen siia urli ka :
http://www.urmas.pri.ee/search/Otsing.php?q=Ants%2BK%E4ba

Seda postitust on muudetud 1 kord (2005-04-13 14:47:00 hanska poolt)

13.04.2005 14:28:17 Vajutades siia näed kasutaja hanska profiili

andoro

Postitusi: 1235
Tase: 9
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: MYSQL FULLTEXT otsing ?!?!

Koodijupp:
SELECT * FROM tabel WHERE eesnimi = '%Ants%' AND perenimi = '%Käba%'


___________________________________________________
Ma oskan lugeda numbreid  2 3 4 5 6 7 8 9 10 poiss, emand, kunn, äss.

13.04.2005 17:05:34 Vajutades siia näed kasutaja andoro profiili

eero


Postitusi: 890
Tase: 8
Olek: Offline

Hinnang: Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10
RE: MYSQL FULLTEXT otsing ?!?!

Veel üks variant
Koodijupp:
SELECT * FROM tabel WHERE CONCAT(eesnimi, ' ', perekonnanimi) LIKE '%Ants Käba%';
Kuid siiski oleks kõige mõttekam tükeldada otsitav string tühikute juurest ning genereerida SQL-päring võimalikest variantidest (juhul kui sisestatakse nimed vales järjekorras või on otsitaval mitu eesnime)

___________________________________________________
This foreign policy stuff is a little frustrating! - George W. Bush

13.04.2005 17:54:44 Vajutades siia näed kasutaja eero profiili

muidumeez
Ignorantia non est
argumentum


Postitusi: 3864
Tase: Administraator
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: MYSQL FULLTEXT otsing ?!?!

Kasutan juba ammu sellist trikki, et andmetabelis on 3 välja: fisrt_name, last_name, full_name. Viimane väli koostatakse automaagiliselt nime loomisel/parandamisel. Otsingul saab väga kergesti siis täisnime järgi otsida.

___________________________________________________
An Opinion Is Like An Asshole -- Everybody Has One

13.04.2005 18:37:42 Vajutades siia näed kasutaja muidumeez profiili

hanska

Postitusi: 16
Tase: 2
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
RE: MYSQL FULLTEXT otsing ?!?!

Tänud

15.04.2005 16:10:20 Vajutades siia näed kasutaja hanska profiili
Kokku: 25950 registreerunud kasutajat, 9711 teemat, 54603 postitust.
Täna on neljapäev, 2. aprill 2020. Kell on 13:06.

    Vaata selle lehe printerisõbralikku versiooni

Avaleht   -    Skriptikogu   -    Teated   -    Foorum   -    Reklaam   -    Tagasiside   -    Kasutamise reeglid

© Copyright 2002-2020 PHP Center. Kõik õigused reserveeritud.