Können mit MATCH 2 Tabellen abgefragt werden?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von 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 |


    Kommentar


    • #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.

      Kommentar

      Lädt...
      X