php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.09.2009, 20:46  
Benutzer
 
Registriert seit: 16.10.2008
Beiträge: 41
malungo befindet sich auf einem aufstrebenden Ast
Standard Anständige Suche in der DB

Hallo!!

Ich habe eine Datenbank die besteht u.a. aus Titel und Beschreibung für ein Buch.

Jetzt will ich eine anständige und sichere Suche basteln.

Die Suche sollte folgende Features haben:

* performant
* sicher
* mehrere Wörter eingebbar

Hab schon ein bisschen gegoogelt und bin dann auf MATCH AGAINST gestoßen.

PHP Blogger: Suchen (und finden) mit PHP - Teil 2: Die direkte Suche - Ein PHP Blog auf deutsch
die-direkte-suche/

Hierfür muss ich einen FULLTEXT Index definieren.
Muss ich hier pro spalte einen Index angeben, oder in diesem Index die beiden Spalten angeben nach denen ich suchen will?
Die DB wird dadurch riesig, aber das lässt sich wohl nicht vermeiden, oder?

Um die Sicherheit zu erhöhen filtere ich den Suchstring mit mysql_real_escape_string(). Reicht das?

Habt ihr ein paar Tipps/Howtos für mich?

Vielen Dank!

Malungo
malungo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.09.2009, 21:01  
Erfahrener Benutzer
 
Benutzerbild von taurus
 
Registriert seit: 01.11.2008
Beiträge: 825
PHP-Kenntnisse:
Anfänger
taurus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du solltest dir als aller erstes gedanken darüber machen woraus deine datenbank besteht, danach entscheidest du wie sie aussieht (stichwort normalisierung hierzu einfach mal nachhaken)
und erst dann machst(kannst) du dir über query etc. gedanken machen...

Zitat:
Datenbank die besteht u.a. aus Titel und Beschreibung für ein Buch.
daher.. wie sieht das projekt am ende aus? welche tabellen in deiner datenbank sind nötig?
taurus ist offline  
Alt 28.09.2009, 21:08  
Benutzer
 
Registriert seit: 16.10.2008
Beiträge: 41
malungo befindet sich auf einem aufstrebenden Ast
Standard

Was später mal hinzukommt weiß ich noch nicht! Da kann alles kommen

Für den aktuellen Fall ists ne Büchertabelle mit
ID, Titel, Beschreibung, Genre, Bewertung

Es gibt dann natürlich auch eine Tabelle für Bewertungen und Genre.

Ich will aber eigentlich nur nach Titel oder/und Beschreibung suchen.
Ggf. noch nach Genre...aber das lässt sich ja dann mit ner einfachen "WHERE genreid = '5' einschränken...das ist nicht das Problem.
malungo ist offline  
Alt 29.09.2009, 17:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich würde ein (bzw. mehrere) zusätzliche Spalten anfügen, in die Du eine reduzierte Liste mit Wörtern einfügst (beim Erstellen bzw. Update des Datensatzes).
Eine sinnvolle Reduzierung besteht imho aus

- Entfernen von Duplikaten
- Entfernen von Stoppwörtern
- Wortstammreduzierung o.ä. Schau Dir hierzu mal Porter-Stemming an.

Mit einem solchen Feld als Index dürfte die Index-Tabelle deutlich kleiner und schneller sein. Allerdings kannst Du dort nicht bspw. aufeinanderfolgende Phrasen suchen lassen - der Index besteht ja nur noch aus Einzelwörtern.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Suche findet nichts naweed PHP Tipps 2009 7 04.09.2009 10:43
[Erledigt] Suche - Wortmanipulation vaLLe PHP Tipps 2009 30 24.08.2009 20:17
eine Suche definieren Tyrra PHP Tipps 2009 14 10.07.2009 09:39
Suche Mitarbeiter für Feuerwehr / Polizei & Rettungsdienst Browsergame.. h3nny Beitragsarchiv 9 01.02.2009 14:56
PLZ Suche in Jobportal mastertnt PHP Tipps 2008 4 29.12.2008 12:16
Problem mit foren suche programmieren! litterauspirna PHP Tipps 2008 4 17.08.2008 12:17
Suche in Office Dateien mit Index Beatbox Off-Topic Diskussionen 6 09.02.2007 15:34
Suche Alienuser PHP Tipps 2006 5 02.07.2006 16:31
suche funktion: suche alles zwischen notyyy PHP Tipps 2006 7 05.06.2006 20:46
[Erledigt] Erweiterung der Suche PHP Tipps 2007 2 01.12.2005 19:30
stichwort suche boehseronkel Datenbanken 2 14.07.2005 09:28
mal wieder eine suche lomtas Datenbanken 0 12.07.2005 11:03
Suche Job als Entwickler/Designer (Raum Bonn o. Telearbeit) Beitragsarchiv 23 01.03.2005 14:00
Suche mehrere Images........ Beitragsarchiv 7 10.01.2005 08:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php suche db, anständige suchfunktion#, suchen in db in php, php suchen in db or, suchfunktion db php, php suchstring normalisieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum