mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 07.09.2008 12:40 Benutzername: Passwort: Auto-Login

Thema: MySQL Volltextsuche vom 10.11.2004

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> MySQL Volltextsuche
Seite: 1, 2  Weiter
Autor Nachricht
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 30
Geschlecht: Männlich
Verfasst Mi 10.11.2004 23:09
Titel

MySQL Volltextsuche

Antworten mit Zitat Zum Seitenanfang

N'abend!
Versuche hier gerade mal eine kleine Suchfunktion in PHP zu schreiben, leider funktioniert das nicht so wie ich es mir vorstelle. Habe den Verdacht das das mit der Bedingung in der Schleife zusammenhängt, aber vielleicht sieht jemand von Euch den Fehler...

MySQL:
Code:

CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `headline` text NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `headline` (`headline`,`text`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;


INSERT INTO `test` VALUES (1, 'Dies ist der kleine Titel', 'Die Funktion MATCH prüft eine natürlichsprachige Anfrage gegen (AGAINST) eine Textsammlung (einfach ein Satz von Spalten, der vom FULLTEXT-Index abgedeckt wird).');


Und hier das Script:
Code:

<?php
$suchbegriff="Spalten";

$sql="SELECT * FROM test WHERE MATCH (headline,text) AGAINST ('$suchbegriff')";
$connection=mysql_connect($server,$user_db,$password_db);
mysql_select_db($name_db,$connection);
$result=mysql_query($sql,$connection);

if(!$result) echo MySQL_error();
else echo "Ok";

while($row=mysql_fetch_object($result)){
   echo $row->id;
   }
mysql_free_result($result);
mysql_close($connection);
?>
 


Das Ok gibt er auch aus aber mehr auch nicht! Kann jemand helfen?

gruß
marcusm
  View user's profile Private Nachricht senden
dastef
Moderator

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 10.11.2004 23:13
Titel

Antworten mit Zitat Zum Seitenanfang

was sagt denn mysql_num_rows() ? und was sagt print_r( $row );
wenn's in der Schleife platziert wird?
  View user's profile Private Nachricht senden E-Mail senden
pRiMUS

Dabei seit: 09.09.2003
Ort: Nemmberch
Alter: 33
Geschlecht: Männlich
Verfasst Mi 10.11.2004 23:15
Titel

Re: MySQL Volltextsuche

Antworten mit Zitat Zum Seitenanfang

marcusm hat geschrieben:
N'abend!
Versuche hier gerade mal eine kleine Suchfunktion in PHP zu schreiben, leider funktioniert das nicht so wie ich es mir vorstelle. Habe den Verdacht das das mit der Bedingung in der Schleife zusammenhängt, aber vielleicht sieht jemand von Euch den Fehler...

MySQL:
Code:

CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `headline` text NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `headline` (`headline`,`text`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;


INSERT INTO `test` VALUES (1, 'Dies ist der kleine Titel', 'Die Funktion MATCH prüft eine natürlichsprachige Anfrage gegen (AGAINST) eine Textsammlung (einfach ein Satz von Spalten, der vom FULLTEXT-Index abgedeckt wird).');


Und hier das Script:
Code:

<?php
$suchbegriff="Spalten";

$sql="SELECT * FROM test WHERE MATCH (headline,text) AGAINST ('$suchbegriff')";
$connection=mysql_connect($server,$user_db,$password_db);
mysql_select_db($name_db,$connection);
$result=mysql_query($sql,$connection);

if(!$result) echo MySQL_error();
else echo "Ok";

while($row=mysql_fetch_object($result)){
   echo $row->id;
   }
mysql_free_result($result);
mysql_close($connection);
?>
 

Das Ok gibt er auch aus aber mehr auch nicht! Kann jemand helfen?

gruß
marcusm


echo $row["id"];


bitte ändern, dann sollte es gehen
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 30
Geschlecht: Männlich
Verfasst Mi 10.11.2004 23:17
Titel

Antworten mit Zitat Zum Seitenanfang

Also mysql_num_rows() gibt mir ne 0 aus...
  View user's profile Private Nachricht senden
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 30
Geschlecht: Männlich
Verfasst Mi 10.11.2004 23:20
Titel

Antworten mit Zitat Zum Seitenanfang

Nope!

"print_r" gibt nichts aus und mit "echo $row["id"]" sagt er auch keinen Ton...???
  View user's profile Private Nachricht senden
XSchinkenX

Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
Verfasst Mi 10.11.2004 23:34
Titel

Antworten mit Zitat Zum Seitenanfang

marcusm hat geschrieben:
Also mysql_num_rows() gibt mir ne 0 aus...


ja, damit hab ich auch angefangen zu testen... aber das ergebnis war ja valide. primus, erst lesen, dann tippen: mysql_fetch_object *zwinker*

Ich bin erstaunt... könnte es daran liegen?:
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:

mysql> SELECT * FROM articles
-> WHERE MATCH (title,body) AGAINST ('MySQL');
Empty set (0.00 sec)

The search result is empty because the word ``MySQL'' is present in at least 50% of the rows. As such, it is effectively treated as a stopword. For large datasets, this is the most desirable behavior--a natural language query should not return every second row from a 1GB table. For small datasets, it may be less desirable.


//
Haha, liegt es! Füge noch ein paar Reihen ein, und dann versuch nochmal *zwinker* Grins


Zuletzt bearbeitet von XSchinkenX am Mi 10.11.2004 23:39, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 30
Geschlecht: Männlich
Verfasst Mi 10.11.2004 23:40
Titel

Antworten mit Zitat Zum Seitenanfang

@ Schinken

Mehr Einträge in die Db oder mehr Text in diesen Eintrag?
  View user's profile Private Nachricht senden
Eistee
Administrator

Dabei seit: 31.10.2001
Ort: Augsburg
Alter: 29
Geschlecht: Männlich
Verfasst Mi 10.11.2004 23:43
Titel

Antworten mit Zitat Zum Seitenanfang

Füge mal für vernünftige Ergebnisse 100 Einträge ein, da hab ich auch schon mal nen halben Tag drüber gegrübelt Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen MySQL - Boolsche Volltextsuche
[PHP / MySql] Volltextsuche haut igrndwie nich hin!
Volltextsuche geht nicht ?
Volltextsuche mit Relevanz
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.