• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Volltextsuche in SQL

Status
Für weitere Antworten geschlossen.

Oper@ter

Neues Mitglied
Hallöchen Leute,

ich möchte auf meiner Webseite eine möglichkeit anbieten, eine Spalte der SQL DB auf einen Wert zu durchsuchen.

Wenn ich in die SQL Konsole folgenen Befehl eingebe, erhalte ich 6521 Ergenisse aus.
SELECT * FROM `item_template` WHERE Match(name) against('boots')

Aber da ja nicht jeder User per Konsole die DB durchsuchen möchte, wollte ich auf einer Webseite ein Formular anbieten, wo man den Suchbegriff eingeben kann.

Habe nun folgenden Code geschrieben:

PHP:
<?php 
     include("connecsql.php") ;
?>
<html>
<body>
Hallo XD
<table>
<?php
 $sql = 'SELECT * FROM `item_template` WHERE Match(name) against(\'boots\')'; 
$result2 = mysql_query ($sql);
while ($row = mysql_fetch_array ($result2))
{
if($filter2==$row['subclass'])
     {
     echo'
          <tr>
               <td>
                    '.$row['entry'].'
               </td>
               <td>
                    '.$row['class'].'
               </td>
               <td>
                    '.$row['subclass'].'
               </td>
               <td>
                    '.$row['name'].'
               </td>
          </tr>';
     }
}
?>
</table>
Hallo 2
</body>
</html>

Allerdings bekomme ich keine Ergebnisse ausgeliefert. Ich probiere nun seit gestern Abend alle möglichen Sachen durch, und verzweifel langsam. Ich denke ich habe einen ganz simplen Syntax fehler :/

Wäre echt klasse, wenn ihr mir helfen könnt =)
Vielen Dank,
mfg OP
 
1. nimm mysql_fetch_assoc(). Das ist nach meiner Meinung einfacher.

Ne Frage, wo nimmst du das $filter2 her? Ich sehs nirgendwo. Und wenns nicht gesetzt is - sprich 0 - wirste auch keine ERgebnisse bekommen.
 
hallo NetzSchleicher

$filter2 wird aus der conncsql.php bezogen ;)

$filter2="7";

Habe nun wie du gesagt hast mysql_fetch_assoc() genommen. Allerdings weiß ich nicht, was dies bewirken soll, und ich sehe auch auf der Webseite keinen unterschied ;)

Es werden leider auch keine Fehlermeldungen ausgegeben.

http://windhund.bplaced.net/item-tracker/against.php


Neuer Quellcode lautet:
PHP:
<?php 
     include("connecsql.php") ;
?>
<html>
<body>
Hallo XD
<table>
<?php
 $sql = 'SELECT * FROM `item_template` WHERE Match(name) against(\'boots\')'; 
$result2 = mysql_query ($sql);
while ($row = mysql_fetch_assoc($result2))
{
if($filter2==$row['subclass'])
     {
     echo'
          <tr>
               <td>
                    '.$row['entry'].'
               </td>
               <td>
                    '.$row['class'].'
               </td>
               <td>
                    '.$row['subclass'].'
               </td>
               <td>
                    '.$row['name'].'
               </td>
          </tr>';
     }
}
?>
</table>
Hallo 2
</body>
</html>
 
Dann änder mal deine SQL ab, denn mit Match against hab ich noch nie gearbeitet...

PHP:
$sql = 'SELECT * FROM `item_template` WHERE name LIKE "%boots%"';
 
mhmmm leider auch keine ausgabe.

ich hab mal testweise folgendesangegeben:

$sql = 'SELECT * FROM `item_template`';

da bekomm ich jetzt haufenweise ausgaben, vor denen ich mich nicht mehr retten kann ;-)

also ich glaube der fehler liegt wirklich an der erweiterung, die da rein muss.

ich habe den befehl mit phpmyadmin getestet. dann bekam ich dann haufenweise ausgaben...
 
mhmm irgendwas stimmt nicht soganz.

ihc habe jetzt mal per phpmyadmin nach nem anderen begriff gesucht, den es 100% gibt, da ich ihn in die zwischenablage kopiert habe.

habe dann zum test mal in meinem webseiten code nen anderen suchbegriff verwendet, und nu? Es funtzt =)


Danke NetzSchleicher für deine Hilfe!!!!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben