Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #11  
Alt 17.12.07, 10:18
Forum Newbie
 
Registriert seit: 09.11.07
Ort: Ansbach (Mittelfranken)
Alter: 22
Beiträge: 36

Also gut ich bin beim Programmieren meiner eigenen Suche ein Stückchen vorangekommen.
Die Treffer werden korrekt gezählt und die gewünschten Datensätze werden auch ausgegeben - allerdings nur als reiner Text.

Und da sind wir schon beim Thema: Im RTE habe ich das, was als normaler Text ausgegeben wird, als Link definiert...

Wie bekomme ich nun hin, dass der Verweis, der im RTE definiert wurde, bei den Suchergebnissen mitgeliefert wird?

Nochwas: Ich habe beispielsweise auf die index.php verwiesen, damit ich sehe wie das ausschaut, ob die CSS-Formatierung stimmt (passt soweit). Das Problem jetzt: Wenn ich im RTE innerhalb eines normalen Text-Elements mehr als einen Link speichere, dann wird natürlich der komplette String in der Datebank unter bodytext gespeichert.

Deshalb werden mir auch bei einer Ausgabe der Suchergebnisse beide Links als EIN Treffer dargestellt, da es sich ja um einen kompletten String handelt...

Das ist z.B. so: Ich suche nach "Vergabe" und bekomme 2 Treffer, obwohl 3 Ausgaben erscheinen. Der Zähler stimmt jedoch, da einer korrekt und die beiden anderen als ein und dasselbe ausgegeben werden!

Kann mir jemand helfen, wie ich das anstelle, den direkten Verweis, den ich im RTE definiert wurde, bei den Sucherergebnissen mit auszugeben?

Hier sind natürlich v.a. diejenigen gefragt, die sich mit PHP auskennen.

Hier ist mein bisher programmiertes Skript:
Code:
<?php
    /****************************************************************
    **** In diesem Skript finden Sie die Einstellungen zur internen Suche ****
    ****************************************************************/

    // Aufnahme der abgeschickten Daten
    $status           = $_GET["status"];
    $suchname      = $_POST["suche"];
    
    switch($status)
    {
        case 'suchen':    normaleSuche($suchname); break;                        //Übergabe des eingegebenen Begriffs an die Funktion normaleSuche()
        case 'A':        zeichenSuche("A"); break;
        case 'B':        zeichenSuche("B"); break;
        case 'C':        zeichenSuche("C"); break;
        case 'D':        zeichenSuche("D"); break;
        case 'E':        zeichenSuche("E"); break;
        case 'F':        zeichenSuche("F"); break;
        case 'G':        zeichenSuche("G"); break;
        case 'H':        zeichenSuche("H"); break;
        case 'I':        zeichenSuche("I"); break;
        case 'J':        zeichenSuche("J"); break;
        case 'K':        zeichenSuche("K"); break;
        case 'L':        zeichenSuche("L"); break;
        case 'M':        zeichenSuche("M"); break;
        case 'N':        zeichenSuche("N"); break;
        case 'O':        zeichenSuche("O"); break;
        case 'P':        zeichenSuche("P"); break;
        case 'Q':        zeichenSuche("Q"); break;
        case 'R':        zeichenSuche("R"); break;
        case 'S':        zeichenSuche("S"); break;
        case 'T':        zeichenSuche("T"); break;
        case 'U':        zeichenSuche("U"); break;
        case 'V':        zeichenSuche("V"); break;
        case 'W':        zeichenSuche("W"); break;
        case 'X':        zeichenSuche("X"); break;
        case 'Y':        zeichenSuche("Y"); break;
        case 'Z':        zeichenSuche("Z"); break;
        case '0':        zeichenSuche("0"); break;
        case '1':        zeichenSuche("1"); break;
        case '2':        zeichenSuche("2"); break;
        case '3':        zeichenSuche("3"); break;
        case '4':        zeichenSuche("4"); break;
        case '5':        zeichenSuche("5"); break;
        case '6':        zeichenSuche("6"); break;
        case '7':        zeichenSuche("7"); break;
        case '8':        zeichenSuche("8"); break;
        case '9':        zeichenSuche("9"); break;
        case '0-9':        vollSuche("0-9"); break;
        case 'A-Z':        vollSuche("A-Z"); break;
        default:        echo "<strong>Fehler im Suchen-Skript. Wenden Sie sich an einen Administrator.</strong>";
    }
    
    function normaleSuche($begriff)
    {
        if($begriff != "" || $begriff != null)                                //Abfrage ob nichts eingegeben wurde
        {
            $eingabe_array = explode(' ',$begriff);                            //Eingegebenen Text splitten
    
            for($i=0; $i<count($eingabe_array); $i++)
            {
                $sql = $GLOBALS['TYPO3_DB']->SELECTquery(
                                '*',                                         // SELECT ...
                                'tt_content',                                // FROM ...
                                'bodytext LIKE "%$eingabe_array[$i]%"',     // WHERE...
                                'pid',                                       // GROUP BY...
                                'bodytext ASC',                                // ORDER BY...
                                '5'                                            // LIMIT ...
                                );
            }
    
            $query = 'SELECT * FROM tt_content t WHERE ';                     //Anfang der Abfrage
    
            for($i=0; $i<count($eingabe_array); $i++)
            {
                $query .= "(t.bodytext LIKE '%".$eingabe_array[$i]."%')"; 
            }
                                
            $ergebnis = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $query);
    
            $anzahlTreffer = mysql_num_rows($ergebnis);                     //Anzahl der zurückgegebenen Datensätze
            echo "<p>Ihre Suche nach <strong>".$begriff."</strong> ergab <strong>".$anzahlTreffer."</strong> Treffer:</p><br>";
    
            for($i=0; $i<$anzahlTreffer; $i++)
            {
                $bodytext = mysql_result($ergebnis,$i,'bodytext');            //Abfrage der news
                $first = array_slice(explode(' ', $bodytext), 0, 40);         //array_slice erstellt ein neues Array mit den ersten 40 Elementen = Worten der Suche
                $kurze_suche = join(' ', $first);                    //join verbindet die Elemente des Arrays zu einem string. Am Ende werden noch drei Punkte angehängt...
         
                echo "<a href='index.php'>$kurze_suche</a><br>";            //Der 40 Worte lange Anfang des Ergebnistextes
            }
        }
        
        else
        {
            echo "<strong>Geben Sie bitte einen Suchbegriff ein.</strong>";
        }
        
    }//Ende der Funktion normaleSuche()
    
    function zeichenSuche($zeichen)
    {
        $sql = $GLOBALS['TYPO3_DB']->SELECTquery(
                                    '*',                                         // SELECT ...
                                    'tt_content',                                // FROM ...
                                    'bodytext LIKE "$zeichen%"',                // WHERE...
                                    'pid',                                       // GROUP BY...
                                    'bodytext ASC',                                // ORDER BY...
                                    '5'                                            // LIMIT ...
                                    );
        
        $query = "SELECT * FROM tt_content t WHERE t.bodytext LIKE '".$zeichen."%'";     //Anfang der Abfrage
        
        $ergebnis = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $query);
    
        $anzahlTreffer = mysql_num_rows($ergebnis);                     //Anzahl der zurückgegebenen Datensätze
        
        echo "<p>Ihre Suche nach <strong>".$zeichen."</strong> ergab <strong>".$anzahlTreffer."</strong> Treffer:</p><br>";
        
        for($i=0; $i<$anzahlTreffer; $i++)
        {
            $bodytext = mysql_result($ergebnis,$i,'bodytext');            //Abfrage der news
            $first = array_slice(explode(' ', $bodytext), 0, 40);         //array_slice erstellt ein neues Array mit den ersten 40 Elementen = Worten der Suche
            $kurze_suche = join(' ', $first);                              //join verbindet die Elemente des Arrays zu einem string. Am Ende werden noch drei Punkte angehängt...
         
            echo "<a href='index.php'>$kurze_suche</a><br>";            //Der 40 Worte lange Anfang des Ergebnistextes
        }
    }
    
    function vollSuche($hilfstring)
    {
        if($hilfstring == "A-Z")
        {
            echo "Hier folgt die A - Z Suche.";
        }
        else if($hilfstring == "0-9")
        {
            echo "Hier folgt die 0 - 9 Suche.";
        }
        else
        {
            echo "<strong>Fehler im Suchen-Skript - Bereich A-Z, 0-9 Suche. Wenden Sie sich an einen Administrator.</strong>";
        }
    }
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An



Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS