Zum Inhalt springen

Modifizierter Autosuggest Controller läuft nicht richtig

Erstellt am 31. Oktober 2018 · 1 Antwort · letzte Antwort am 5. November 2018

Tags: Suche, TYPO3 8, Frage

sanktusm ·

Hallo,
ich habe einen Controller für Autosuggest modifziert. Folgendes Script ergibt keine vollständige Ausgabe:

public function suggestAction() {
		
		if($this->request->hasArgument('search')) {
			$search = $this->request->getArgument('search');
			
			$suggestions = [];
			$language = $GLOBALS['TSFE']->sys_language_uid;
			$field ='SQL_NO_CACHE uid, header';
			$from  ='tt_content';
			$where  ='header LIKE '."'" . '%' . $search . '%' ."'" . '';

			$groub_by = '';
			$order_by = '';
			$limit = '';
      
    
			$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($field, $from, $where, $groub_by, $order_by, $limit);
      

      
			while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){
				
        $suggestions[] = $row; 
        
        
             $field_1 = 'SQL_NO_CACHE tx_mask_zubehoer_tabellenzeilen.tx_mask_z_column_1';
			
             $from_1  = ' tx_mask_zubehoer_tabellenzeilen';
			
             $where_1  = 'parentid = '."'" . $row['uid']  ."'" . '';

			       $groub_by_1 = '';
			       $order_by_1 = '';
			       $limit_1 = '';
      
         
             
             
			$res_1 = $GLOBALS['TYPO3_DB']->exec_SELECTquery($field_1, $from_1, $where_1, $groub_by_1, $order_by_1, $limit_1);
      
   
      
			while($row_1 = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_1)){
				
        $suggestions[] = $row_1; 
    
			}                                    
        
    
			}
      
      
      
     
      
  
       
     
			return $this->buildJsonRepsonseFromQuery($suggestions);
		}
	}
	
	private function buildJsonRepsonseFromQuery($suggestions) {
		return json_encode( $this->createValueMapFromStringArray($suggestions));
	}
	
	private function createValueMapFromStringArray($array) {
		$options = [];
                
		foreach($array as $key => $value){
			if(!is_int($value)) {  
        
        
        if(!empty($value['header'])) {
        $options[$value['header']]['value'] = $value['header'];
        $val_zubeboer = $value['header'];
        }                         
       
        if(!empty($value['tx_mask_z_column_1']) AND $value['tx_mask_z_column_1'] != "Zubehör für" AND $value['tx_mask_z_column_1'] != "Kalotte" AND $value['tx_mask_z_column_1'] != "-" AND $value['tx_mask_z_column_1'] != "Profilfüller der Kurzbezeichnung" AND $value['tx_mask_z_column_1'] != "")
        $options[$value['tx_mask_z_column_1']]['value'] = "Zubehör für ".$val_zubeboer.": ".$value['tx_mask_z_column_1'];
  
                                                                                                           
        
			}
		}
		return $options;
	}

Gesucht werden soll nach einem Header und es soll dann aus den Zeilen einer Tabelle weitere Vorschläge angezeigt werden. Vielleicht hat jemand eine Idee, was ich da falsch mache.

pstranghoener ·

Hi sanktusm,

versuch doch mal dies:
Bitte an den entsprechenden Stellen `debuggen` und lass dir stückweiße die Ergebnisse ausgeben. Am Besten mit `var_dump($variable); die;`.
Dann bitte auch prüfen ob der SQL Query ein Ergebnis zurück liefert. Also den SQL Query mal in phpmyadmin ausführen und schauen ob das Ergebnis stimmt.
Hier noch eine kleine Referenz 🙂
https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Debugging/Index.html

Viel Erfolg!
VG