Können mit MATCH 2 Tabellen abgefragt werden?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Können mit MATCH 2 Tabellen abgefragt werden?

    Hi,

    ich habe eine funktionierende Abfrage meiner DB, die nur 1 Tabelle mit MATCH abfragt. Lässt sich hier eine zweite Tabelle einfach einfügen? Die 2. Tabelle hat bis auf das Feld id keine identischen Felder. Und wie lässt sich das Problem lösen, dass ich alle Daten auf einer Seite ausgeben will.

    Gruß,

    René


    PHP Code:
    ////////////////////////////////////////////////////////////////////////////////////////////////
    $search == "";
    $abfrage "SELECT *,
    MATCH(pg_title, pg_description, pg_content) AGAINST ('
    $search') AS score
                    FROM 
    $tabelle1 
                    WHERE MATCH(pg_title, pg_description, pg_content) AGAINST ('
    $search')";


    $result mysql_query($abfrage,$conn);
    while (
    $row mysql_fetch_array ($result)) 
    {
    $id $row["id"];
    $pg_title $row["pg_title"];
    $pg_description $row["pg_description"];
    $pg_content $row["pg_content"];

    if (
    $artuebersicht == "1")
    {
    echo <<<ABC
        <tr>
            <td width="450" align="left" valign="top" bgcolor="#BFCCD9" class="main"><b>
    $pg_title</b></a>
            </td>

        </tr>
            <tr>
            <td width="450" align="left" valign="top" class="main">
    $pg_description <a href="showcontentnpb.php?id=$id">Mehr »<br><br></a>
            </td>

        </tr>
    ABC;
    }
    }
    mysql_free_result($result); 
    mysql_close($conn);
    ////////////////////////////////////////////////////////////////////////////////////////////// 
    EDIT:
    php.tags sponsored by Abraxax
    Last edited by Abraxax; 09-07-2003, 20:57.

  • #2
    mache dich mal über die JOINs schlau.

    damit kannst du bequem die tabellen 'verbinden' und dann sollte auch der MATCH klappen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Comment


    • #3
      http://www.mysql.de/doc/de/Fulltext_Restrictions.html
      • Alle Parameter der MATCH-Funktion müssen Spalten derselben Tabelle sein, die Teil desselben Volltext-Indexes ist.
      • Das Argument für AGAINST muss eine Konstanten-Zeichenkette sein.

      Ergo musst du für Felder aus zwei Tabellen auch zwei match()-Aufrufe in Kauf nehmen.

      select a.*,b.* from Tabelle1 a, Tabelle2 b where a.id=b.id and
      (match(a.Feld1) against 'Suche' or match(b.Feld2) against 'Suche')
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Comment

      Working...
      X