count(*) mit match against abfrage

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

  • count(*) mit match against abfrage

    hi,

    um in meinem newssystem zu suchen benutze ich folgende abfrage:

    $sql2="SELECT *, MATCH (text_news) AGAINST ('$keyword') AS rang FROM news WHERE MATCH (text_news) AGAINST ('$keyword') AND submit_news='1' AND fsectid>'0' ;

    diese klappt auch,

    um die suchergebnisse aber auf mehrere seiten zu verteilen, muss ich die ergebnisse vorher zaehlen,
    jedoch bekomme ich obige abfrage nicht mit count(*) hin

    $sql1="SELECT COUNT(*), MATCH (text_news) AGAINST ('$keyword') AS rang FROM news WHERE MATCH (text_news) AGAINST ('$keyword') AND submit_news='1' AND fsectid>'0'";

    $sresult=mysql_query($sql1);
    $total = mysql_result($sresult, 0);

    bei mysql_result kommt dann die uebliche fehlermeldung
    "...is not a valid mysql result..."

    Wie bekomme ich ein count auf meine abfrage ??

    und noch was:
    wenn ich folgendes abfrage, also in titel und text suchen will, dann bringt er auch diese meldung dass dies ein ungueltiges mysql result ist, obwohl es hier: >> http://www.mysql.com/doc/de/Fulltext_Search.html <<
    genau so beschrieben ist

    $sql2="SELECT *, MATCH (text_news,title_news) AGAINST ('$keyword') AS rang FROM news WHERE MATCH (text_news,title_news) AGAINST ('$keyword') AND submit_news='1' AND fsectid>'0' ";


    ideen fuer 2 vielleicht nur kleine probleme ??

    ciao
    danke
    Zuletzt geändert von bender_79; 26.03.2003, 05:26.

  • #2
    Das ist üblicherweise die übliche fehlermeldung wenn man nicht weiß wie man 'ne bessere bekommt ... !

    PHP-Code:
    $sql1="SELECT COUNT(*) FROM news WHERE MATCH (text_news) AGAINST ('$keyword') AND submit_news='1' AND fsectid>'0'";

    $sresult=mysql_query($sql1) or die(mysql_error());
    $total mysql_result($sresult0); 
    Aggregat-Funktionen und MATCH() AGAINST() vertragen sich nicht wirklich gut ...

    der Ausdruck: $sresult=mysql_query($sql1) or die(mysql_error());
    liefert Dir eine vernünftige Fehlermeldung ...
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      so wie deine loesung hatte ich es ja davor, nur war die suchfunktion mit mehreren woertern nicht zu gebrauchen...

      deshalb nu die erweiterte mit 2x match und as rank

      als fehlermeldung spuckt er aus dass ich aggregat und match against nur mit group by verwenden darf...
      Zuletzt geändert von bender_79; 27.03.2003, 06:16.

      Kommentar


      • #4
        durch das group by am ende meiner count abfrage kommt jetzt aber immer 1 fuer $total aus, also die anzahl der ergebnisse...

        $sql1="SELECT COUNT(*), MATCH (text_news) AGAINST ('$keyword') AS rang FROM news WHERE MATCH (text_news) AGAINST ('$keyword') AND submit_news='1' AND fsectid>'0' GROUP BY title_news";

        $sresult=mysql_query($sql1);
        $total = mysql_result($sresult, 0);

        meine normale abfrage funzt ja dagegen fuer die eigentlichen ergebnisse

        $sql2="SELECT *, MATCH (text_news) AGAINST ('$keyword') AS rang FROM news WHERE MATCH (text_news) AGAINST ('$keyword') AND submit_news='1' AND fsectid>'0' LIMIT $start,$limit";

        wie bekomm ich nun die anzahl der resultate ??
        Zuletzt geändert von bender_79; 26.03.2003, 08:05.

        Kommentar


        • #5
          fuer das zweite von meinen problemen im anfangspsting hab ich jetzt die loesung gefunden:

          zitat aus dem mysql manual:

          A clarification for those very new to mySQL:
          MATCH (body,title) will only work if you have an
          index on both fields together - something created
          like this:
          ALTER TABLE some_tbl ADD FULLTEXT (body,title);
          It will not work if you have an index on each
          of 'body' and 'title' separately.
          Posted by Joe Azaeyayev on Saturday October 12 2002, @6:50pm

          nix fuer ungut

          bleibt aber noch das count problem bei match against group by

          Kommentar

          Lädt...
          X