php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 06.06.2007, 21:23  
Erfahrener Benutzer
 
Benutzerbild von SvenLittkowski
 
Registriert seit: 05.09.2004
Beiträge: 578
SvenLittkowski zeigte ein beschämendes Verhalten in der Vergangenheit
Standard MySQL-Volltextsuche

Hi.

Bei einer anderen Tabelle innerhalb meiner MySQL-Datenbank funktioniert es, hier aber nicht. Was mache ich falsch?

Feldtypen in der Datenbank-Tabelle:
Code:
Business   	varchar(50)
Street  	varchar(100)
Street2  	varchar(100)
StreetNumber  	varchar(10)
City  	varchar(20)
ZIP  	varchar(10)
State  	varchar(20)
Country  	varchar(20)
Phone  	varchar(25)
EMail  	varchar(20)
Website  	varchar(30)
Dies ist der (such-ermoeglichende) Index der Tabelle:
Code:
Indexes:
Keyname        Type        Cardinality 	Field
PRIMARY        PRIMARY   5  	         Key

Business         INDEX      5                Business
                                                      Street
                                                      Street2
                                                      StreetNumber
                                                      City
                                                      ZIP
                                                      State
                                                      Country
                                                      Phone
                                                      EMail
                                                      Website
Und dies ist der Befehl, mit dem ich eigentlich ganz gerne suchen will:
PHP-Code:
$Befehl="select `Key`, `Business`, `Street`, `Street2`, `StreetNumber`, `City`, `ZIP`, `State`, `Country`, `Phone`, `EMail`, `Website`, ".
         
"match (`Business`, `Street`, `Street2`, `StreetNumber`, `City`, `ZIP`, `State`, `Country`, `Phone`, `EMail`, `Website`) ".
         
"against ('".$Indicium."') as Score ".
         
"from JBJ_Story ".
         
"where match (`Business`, `Street`, `Street2`, `StreetNumber`, `City`, `ZIP`, `State`, `Country`, `Phone`, `EMail`, `Website`) ".
         
"against ('".$Indicium."')"// echo($Befehl); 
Was zum Teufel mache ich falsch? Jede Suche endet ohne Ergebnis, OBWOHL ich die Suchworte durchaus in den Datensaetzen habe, und sie auch aus mehr als 5 Zeichen bestehen...
__________________

Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
Sven
SvenLittkowski ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.06.2007, 00:57  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

ein INDEX oder KEY ist != FULLTEXT
du muss die betroffene Spalten mit FULLTEXT(spaltenname1,spaltenname2,...) bei create Table oder mit ALTER TABLE machen.
__________________
Slava
http://bituniverse.com
Slava ist offline   Mit Zitat antworten
Alt 12.06.2007, 20:29  
Erfahrener Benutzer
 
Benutzerbild von SvenLittkowski
 
Registriert seit: 05.09.2004
Beiträge: 578
SvenLittkowski zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Slava, vielen Dank fuer den Hinweis. Wie sieht dieser Befehl als MySQL bei einer existierenden Tabelle aus? Kannst Du mir einen Beispielbefehl posten? Da ich dies nicht oft mache, wuerde mir das sehr stark helfen!
__________________

Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
Sven
SvenLittkowski ist offline   Mit Zitat antworten
Alt 12.06.2007, 20:47  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

ALTER TABLE tabellenname ADD FULLTEXT (textspalte_name)

du kannst das auch bequem über phpmyadmin machen.
__________________
Slava
http://bituniverse.com
Slava ist offline   Mit Zitat antworten
Alt 14.06.2007, 18:33  
Erfahrener Benutzer
 
Benutzerbild von SvenLittkowski
 
Registriert seit: 05.09.2004
Beiträge: 578
SvenLittkowski zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Hallo Slava,

ich denke, ich habe alles richtig gemacht (anscheinend aber nicht). Trotzdem funktioniert die Suche nicht. Jedoch funktioniert sie bein einer anderen MySQL-Tabelle.

Hier funktioniert die Suche (Tabellenstruktur):
Code:
CREATE TABLE `NorthCoastTimes_Story` 
(
  `IDStory` int(15) unsigned zerofill NOT NULL default '000000000000000',
  `Section` varchar(50) NOT NULL default '',
  `Headline` varchar(255) NOT NULL default '',
  `Author` varchar(255) NOT NULL default '',
  `Summary` text NOT NULL,
  `Story` text NOT NULL,
  `Caption1` text,
  `Caption2` text,
  `Caption3` text,
  `Caption4` text,
  `Caption5` text,
  PRIMARY KEY  (`IDStory`),
  FULLTEXT KEY `Section` 
  (`Section`,`Headline`,`Author`,`Summary`,`Story`,`Caption1`,`Caption2`,`Caption3`,`Caption4`,`Caption5`)
)
TYPE=MyISAM COMMENT='North Coast Times - Stories';
Und hier funktioniert es nicht (Tabellenstruktur):
Code:
CREATE TABLE `JBJ_Story` 
(
  `IDStory` int(15) unsigned zerofill NOT NULL default '000000000000000',
  `Volume` char(2) NOT NULL default '00',
  `Number` char(2) NOT NULL default '00',
  `Section` varchar(50) NOT NULL default '',
  `Headline` varchar(255) NOT NULL default '',
  `Author` varchar(255) NOT NULL default '',
  `Summary` text NOT NULL,
  `Story` text NOT NULL,
  `Caption01` text,
  `Caption02` text,
  `Caption03` text,
  `Caption04` text,
  `Caption05` text,
  `Caption06` text,
  `Caption07` text,
  `Caption08` text,
  `Caption09` text,
  `Caption10` text,
  PRIMARY KEY  (`IDStory`),
  FULLTEXT KEY `Section`     (`Section`,`Headline`,`Author`,`Summary`,`Story`,`Caption01`,`Caption02`,`Caption03`,`Caption04`,`Caption05`,`Caption06`,`Caption07`,`Caption08`,`Caption09`)
) 
TYPE=MyISAM COMMENT='JBJ - Stories';
Dies sind die beiden Suchbefehle, von denen der erste 0 Resultate erbringt.:
PHP-Code:
 $Befehl="select IDStory, Volume, Number, Section, Headline, Author, Summary, ".
         
"match (Section, Headline, Author, Summary, Story, ".
         
"Caption01, Caption02, Caption03, Caption04, Caption05, Caption06, Caption07, Caption08, Caption09, Caption10) ".
         
"against ('".$Indicium."') as Score ".
         
"from JBJ_Story ".
         
"where match (Section, Headline, Author, Summary, Story, ".
         
"Caption01, Caption02, Caption03, Caption04, Caption05, Caption06, Caption07, Caption08, Caption09, Caption10) ".
         
"against ('".$Indicium."')"// echo($Befehl);   

 
$Befehl="select IDStory, Section, Headline, Author, Summary, ".
         
"match (Section, Headline, Author, Summary, Story, Caption1, Caption2, Caption3, Caption4, Caption5) against ('".$Indicium."') as Score ".
         
"from NorthCoastTimes_Story ".
         
"where match (Section, Headline, Author, Summary, Story, Caption1, Caption2, Caption3, Caption4, Caption5) against ('".$Indicium."')"
Ich vermute, dass ich irgend etwas uebersehe.
__________________

Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
Sven
SvenLittkowski ist offline   Mit Zitat antworten
Alt 14.06.2007, 19:06  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich bin kein Volltextsuchen-Experte, aber MATCH muss schon die als Fulltext festgelegte komplette Struktur übergeben werden, oder?
Zitat:
FULLTEXT KEY `Section` (`Section`,`Headline`,`Author`,`Summary`,`Story`,` Caption01`,`Caption02`,`Caption03`,`Caption04`,`Ca ption05`,`Caption06`,`Caption07`,`Caption08`,`Capt ion09`)
Zitat:
select IDStory, Volume, Number, Section, Headline, Author, Summary, ".
"match (Section, Headline, Author, Summary, Story, ".
"Caption01, Caption02, Caption03, Caption04, Caption05, Caption06, Caption07, Caption08, Caption09, Caption10)

Welche Fehlermeldung bekommst du denn von mysql_error geliefert?
Zergling-new ist offline   Mit Zitat antworten
Alt 14.06.2007, 19:58  
Erfahrener Benutzer
 
Benutzerbild von SvenLittkowski
 
Registriert seit: 05.09.2004
Beiträge: 578
SvenLittkowski zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zergling,

nein, daran liegt es nicht. Der echte Befehl schliesst nur die Captions 01 bis 09 ein, da bis jetzt auch nur 9 Captions im Such-Index der MySQL-Datenbank vorhanden sind.

Ich habe merkwuerdigerweise Probleme, die zehnte Caption in den Index mit einzuschliessen. Dies ist die Fehlermeldung, wenn ich Caption10 zum Index zu addieren versuche:

Code:
Fehler
SQL-Befehl: Bearbeiten

ALTER TABLE `JBJ_Story` DROP INDEX `Section` ,
ADD FULLTEXT `Section` (
`Section` ,
`Headline` ,
`Author` ,
`Summary` ,
`Story` ,
`Caption01` ,
`Caption02` ,
`Caption03` ,
`Caption04` ,
`Caption05` ,
`Caption06` ,
`Caption07` ,
`Caption08` ,
`Caption09` ,
`Caption10`
)

MySQL meldet: Dokumentation
#1005 - Can't create table './db108050729/#sql-4f64_12f46239.frm' (errno: 140)
Alle anderen Captions konnte ich erfolgreich integrieren.

Aber wie gesagt, Caption10 hatte ich erstmal nur hier im Befehl erwaehnt. Der Fehler muss also woanders liegen.
__________________

Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
Sven
SvenLittkowski 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] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
MySQL Volltextsuche mit PHP DarkThunder Datenbanken 5 21.03.2007 19:08
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
[Erledigt] Mysql 4.1.x unter php 4.3.9 Datenbanken 3 15.11.2005 13:49
Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
MySQL & PHP: Problem mit Password() Datenbanken 10 19.09.2005 11:00
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MySQL 3.23.x Volltextsuche mit Boolean codix Datenbanken 0 29.07.2005 14:42
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
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
[Erledigt] PHP5 &a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql textsuche, mysql volltextsuche, volltextsuche mysql, http://www.php.de/datenbanken/44153-mysql-volltextsuche.html, textsuche mysql, php mysql volltextsuche, mysql suchbefehle, php textsuche, mysql suchbefehl, php mysql textsuche, php volltextsuche, datenbank textsuche, sql textsuche, mysql text suche, sql suchbefehl, php sql volltextsuche, access datenbank textsuche, sql match befehl, php volltextsuche datenbank, textsuche html

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