php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.10.2005, 07:35  
Erfahrener Benutzer
 
Registriert seit: 27.11.2004
Beiträge: 149
nsane
nsane eine Nachricht über ICQ schicken
Standard 2 MySQL Spalten suchen und nach Relevanz ordnen!?

Hallo,

ich möchte eine einfache Suche:

ich habe ein Table mit 3 Spalten: id, vorname, nachname

Nun möchte ich, dass die Leute auf meiner Seite diesen Table (mss_user( durchsuchen können.

Da ich nicht weiß, wie viele Namensteil und in welcher Reihenfolge sie die Daten eingeben (Vorname Nachname oder andersrum), weiß ich nicht genau, wie ich die Suche machen soll...

ich habe es versucht, mit der MySQL Fulltext Suche:
http://dev.mysql.com/doc/refman/5.0/...xt-search.html

Leider steht am Ende:
Zitat:
Such a technique works best with large collections (in fact, it was carefully tuned this way). For very small tables, word distribution does not adequately reflect their semantic value, and this model may sometimes produce bizarre results. For example, although the word MySQL is present in every row of the articles table, a search for the word produces no results:
Das habe ich auch bei folgendem Code gemerkt:

PHP-Code:
<?php
function search_person($name) {
    
$sql "SELECT
                id, nachname, vorname,
            MATCH (vorname, nachname) AGAINST ('"
.$name."') AS score
            FROM mss_user
            WHERE MATCH (vorname, nachname) AGAINST ('"
.$name."')";
    
$res mysql_query($sql) or die(mysql_error());
    
$array = array();
    while(
$row mysql_fetch_assoc($res)) {
        
$array[] = $row;
    }
    return 
$array;

}
?>
wenn ich nun noch dazufüge " IN BOOLEAN MODE", wie auf der ächsten Seite des Manuals beschrieben, dann findet er bei oberem Code nurnoch jeweils eine Spalte.

Also angenommen mehrere Spalten wären betroffen mit je einem Treffer in Vorname oder Nachname, dann wird nurnoch einer dieser Name ausgegeben!

Wie könnte ich eine Suche meiner Art am besten realisieren?

Danke!
nsane ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.10.2005, 08:31  
Erfahrener Benutzer
 
Registriert seit: 23.08.2004
Beiträge: 175
tekknotrip
Standard

???? Sorry, ich stell mich jetzt mal doof:

Code:
SELECT
            id, nachname, vorname
            FROM mss_user
            WHERE vorname LIKE '%$variable_vorname%' OR nachname LIKE '%$variable_nachname%'
tekknotrip ist offline   Mit Zitat antworten
Alt 19.10.2005, 10:38  
Gast
 
Beiträge: n/a
Standard

Weil du offenbar das Vertauschen von Vor- und Nachnamen noch abfangen moechtest, kannst du die Vergleiche auch noch vertausch durchfuehren:

Code:
SELECT *
FROM mms_user
WHERE vorname LIKE '%$variable_vorname%' OR nachname LIKE '%$variable_nachname%' OR nachname LIKE '%$variable_vorname%' OR vorname LIKE '%$variable_nachname%'
Die Wahrscheinlichkeit, dass dann aber mehrere Datensätze (wovon vermutlich nur einer der richtige ist) selektiert werden, ist relativ gross.

Gruss,
Janosh
  Mit Zitat antworten
Alt 19.10.2005, 11:34  
Erfahrener Benutzer
 
Registriert seit: 27.11.2004
Beiträge: 149
nsane
nsane eine Nachricht über ICQ schicken
Standard

ja ok, danke ...
aber ich meinte eigentlich, es sei blöd, dass ich eine Variable habe, in der Vorname und Nachname stehen, und eventuell noch mehrere teile des Namens. z.b.
Hans Gerd Friedrich oder sowas...
aber ich habe das nun mit IN gelößt. falls jmd noch ne bessere Lösung hat, immer her damit
nsane ist offline   Mit Zitat antworten
Alt 19.10.2005, 12:03  
Erfahrener Benutzer
 
Registriert seit: 23.08.2004
Beiträge: 175
tekknotrip
Standard

mach aber kein * in der Select abfrage

das tut man nicht
tekknotrip ist offline   Mit Zitat antworten
Antwort


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] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
MySQL: Select: Alles ordnen aber 1 Eintrag zuerst anzeigen SvenLittkowski Datenbanken 12 29.10.2007 21:24
Hilfe bei Mysql Query aus mehreren spalten benötigt cytrobic Datenbanken 8 18.05.2007 11:36
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
MySQL daten in vorgegebene Spalten schreiben svenffm PHP Tipps 2006 6 05.04.2006 08:51
[Erledigt] Dynamische Ausgabe von Mysql Abfragen PHP-Fortgeschrittene 1 21.10.2005 10:53
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
[Erledigt] MySQL Relevanz, Gewichtung bzw. Ranking Datenbanken 0 01.09.2005 10:56
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
Erstellen spalten in MySQL tabelle Datenbanken 7 14.11.2004 19:53
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
[Erledigt] PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql relevanz, mysql spalte suchen, php liste nach relevanz sortieren, mysql suche relevanz, mysql like relevanz, php suche relevanz, mysql nach relevanz ordnen, mysql nach relevanz, sql relevanz, mysql spalte finden, mysql suche mehrere spalten, mysql suche nach relevanz, mysql or nach relevanz, mysql nach spalten suchen, mysql mehrere spalten durchsuchen, mysql nach spalte suchen, mysql suche über mehrere spalten, mysql fulltext relevanz, sql suche relevanz, mysql nach spaltennamen suchen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:54 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.