+ Antworten
Ergebnis 1 bis 6 von 6

Thema: DB mit Searchbot durchsuchen

  1. #1
    Neu an Board
    Registriert seit
    28.01.2009
    Beiträge
    14
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard DB mit Searchbot durchsuchen

    hallo,

    ich habe folgendes Problem: Habe in meiner Datenbank eine Tabelle mit Autoren angelegt, die ich mit dem Searchbot durchsuchen möchte. Klappt auch ganz gut.

    Aber nach dem exakt 3147ten Datensatz (Zeile) streikt die Suche und liefert keine Ergebnisse mehr. Insgesamt hat die Tabelle 6180 Zeilen.

    Kann jemand helfen?

    strich-sieben

  2. #2
    Neu an Board
    Registriert seit
    28.01.2009
    Beiträge
    14
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,

    hat keiner eine Idee? Bin über jede Hilfe und jeden Denkanstoß dankbar...


    Beste Grüße

  3. #3
    Neu an Board
    Registriert seit
    28.01.2009
    Beiträge
    14
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Kann mir denn NIEMAND bei der Lösung des Problems helfen? Komme einfach nicht weiter...

    Beste Grüße

  4. #4
    Gehört zum Inventar Avatar von deejey
    Registriert seit
    22.04.2006
    Ort
    HH
    Beiträge
    9.309
    Bedankte sich
    509
    Erhielt 1.791 Danksagungen
    in 1.583 Beiträgen

    Standard

    Zitat Zitat von strich-sieben Beitrag anzeigen
    Aber nach dem exakt 3147ten Datensatz (Zeile) streikt die Suche und liefert keine Ergebnisse mehr
    Woher weißt du, dass es genau der Satz ist?
    Ansonsten z.B. mal mit phpmyadmin in den ersten und letzten Satz einen bisher unbekannten Begriff reinstellen und nochmal prüfen (mit phpmyadmin sieht man die Reihenfolge nach Primärkey sortiert, diese Folge muss aber im "select ..." nicht unbedingt dieselbe sein)

    Quellcode des bots wäre auch nicht schlecht, als Anhang oder im Beitrag php-formatiert
    Kein Support über PM; Ignoriermodus aktiv bei "dringend", "schnell", "eilt", denn: Zeit ist relativ

  5. Erhielt Danksagungen von:


  6. #5
    Neu an Board
    Registriert seit
    28.01.2009
    Beiträge
    14
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo deejey,
    danke für deine Antwort.

    Habe das mit phpmyadmin verglichen und genau nach dieser Zeile findet er nichts mehr. Das mit der Reihenfolge habe ich dabei nicht beachtet...

    Hier der Bot:
    PHP-Code:
    <?php
    // no direct access
    defined'_JEXEC' ) or die( 'Restricted access' );

    $mainframe->registerEvent'onSearch''plgSearchAuto' );
    $mainframe->registerEvent'onSearchAreas''plgSearchAutoAreas' );

    /**
     * @return array An array of search areas
     */
    function &plgSearchAutoAreas() {
        static 
    $areas = array(
            
    'auto' => 'GWH-Archiv'
        
    );
        return 
    $areas;
    }


    function 
    plgSearchAuto$text$phrase=''$ordering=''$areas=null )
    {
        
    $db        =& JFactory::getDBO();
        
    $user    =& JFactory::getUser();

        if (
    is_array$areas )) {
            if (!
    array_intersect$areasarray_keysplgSearchAutoAreas() ) )) {
                return array();
            }
        }

        
    // load plugin params info
         
    $plugin =& JPluginHelper::getPlugin('search''auto');
         
    $pluginParams = new JParameter$plugin->params );

        
    $limit $pluginParams->def'search_limit'50 );

        
    $text trim$text );
        if (
    $text == '') {
            return array();
        }
        
    $section     JText::_'Auto' );

        
    $wheres     = array();
        switch (
    $phrase
        {
            case 
    'exact':
                
    $text $db->getEscaped($text);
                
    $wheres2     = array();
                
    $wheres2[]     = "LOWER(a.text) LIKE '%$text%'";
                
    $wheres2[]     = "LOWER(a.hersteller) LIKE '%$text%'";
                
    $where         '(' implode') OR ('$wheres2 ) . ')';
                break;

            case 
    'all':
            case 
    'any':
            default:
                
    $words     explode' '$text );
                
    $wheres = array();
                foreach (
    $words as $word) {
                    
    $word $db->getEscaped($word);
                    
    $wheres2     = array();
                    
    $wheres2[]     = "LOWER(a.text) LIKE '%$word%'";
                    
    $wheres2[]     = "LOWER(a.hersteller) LIKE '%$word%'";
                    
    $wheres[]     = implode' OR '$wheres2 );
                }
                
    $where     '(' implode( ($phrase == 'all' ') AND (' ') OR ('), $wheres ) . ')';
                break;
        }

        switch ( 
    $ordering 
        {
            default:
                
    $order 'a.text ASC';
                break;

        }

        
    $query "SELECT * FROM #__auto AS a"
             
    "\n WHERE ( $where )"
             
    "\n AND published = '1'"
             
    "\n ORDER BY $order";
        ;
        
        
    //echo $query; die();
        
    $db->setQuery$query0$limit );
        
    $rows $db->loadObjectList();
        
        foreach(
    $rows as $key => $row) {
            
    $rows[$key]->href 'index.php?option=com_auto&view=auto';
        }

        return 
    $rows;
    }
    ?>

  7. #6
    Neu an Board
    Registriert seit
    28.01.2009
    Beiträge
    14
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Problem ist gelöst - ich Döddel habe die falsche DB-Tabelle angegeben...

    Trotzdem nochmals vielen Dank.

    Beste Grüße

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein