ilch Forum » Allgemein » HTML, PHP, SQL,... » Such Script erweitern

Geschlossen
  1. #1
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    Hi Leute,

    ich nutze das Suchscript von Sniper:

    externer Link

    wie kann ich das erweitern dass es mir zusätzlich auch eine Tabelle in der Datenbank durchsucht?
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das Script durchsucht die Ausgabe, die an den Browser gesendet wird, ist also dafür nicht geeignet, die normale Suche sucht in der Datenbank.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ich brauch aber beides kombiniert ...
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Dann musst du halt beide hintereinander durchführen.

    Das Script von Sniper ist auch nicht wirklich optimal, es läd ALLE Dateien die in der Navigation verlinkt sind und nur diese (also keine Forenunterseiten oder so), ruft diese nacheinander auf und sucht darin, es wird also zig mal die komplette Seite neu initialisiert und darin gesucht, geht das denn schnell genug?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ja die Seite ist nicht soooo Groß also hat nicht so viele unterseiten

    ich muss aber eine spezielle tabelle durchsuchen die nicht im standard 1.1O drin ist ..
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Weißt du nicht wie das geht, ist doch eigentliche eine simple SQL Abfrage, wo du dann bei WHERE mit LIKE etc. die Ergebnisse einschränken kannst und dann musst du halt ausgeben, was gefunden wurde und ggf. verlinken.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    doch das bekomm ich schon hin weiß nur nicht wie ich das am sinnvollsten mit dem suchskript von sniper verknüpfe ..
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das einfachste wäre die Ergebnisse für deine Suche einfach darüber oder darunter darunter darzustellen, ich verstehe dein Problem dabei nicht wirklich. Das müsstest du wohl dann doch genauer erläutern, da ich keins sehe.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    Ja vielleicht denk ich verkehrt ich fang später einfach mal an .... Und schau was raus kommt lächeln
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    also ich hab jetzt mal angefangen ...

    <?php
    defined ('main') or die ( 'no direct access' );
     
     
    $title = $allgAr['title'].' :: Suche';
    $hmenu = 'Suche';
    $design = new design ( $title , $hmenu );
    $design->header();
     
    function comment_decode($string)
    {
        $string = preg_replace("/(\<\!\-\-.*\-\-\>)/sU", "", $string);    
        return $string;
    }
    $suche = escape($_POST['search'],'string');
    ?>
    
    <script type="text/javascript">
    	document.getElementById("eyecatcher").innerHTML = " <div id='pagetitle'>Suchergebnisse</div>";
    </script>
    <br><br><br>
    <div class="total">
    	<form method="post" action="?sitesearch"> 
    		<input type="text" name="search" value="<?php echo $suche; ?>" /><input type="submit" name="submit" value="Suchen" />
    	</form>
    	<br>
    	<?php
    	if(isset($_POST['submit']) AND !empty($suche)){
    		
    		# Suche in der Menüstruktur 
    		$query = 'SELECT * FROM prefix_menu WHERE was = "7" or was = "9"';
    		$sql = db_query($query);
    		$i = '0';
    		while($row = db_fetch_object($sql)){
    			$content = file_get_contents('http://relaunch.henne-walter.de/index.php?'.$row->path);
    			 
    			$content = explode('<div id="anfsearch',$content);   
    			$content = $content[1];
    			$content = explode('<div id="end"',$content);
    			$content = $content[0];
    			$content = comment_decode($content);    
    			$content = strip_tags($content);
    			if(strpos($content,$suche)){
    				echo '<br><h2><a href="?'.$row->path.'">'.$row->name.'</a></h2>';
    				$content = str_replace($suche,'<b>'.$suche.'</b>',$content);
    				$content = wordwrap($content,'80','WRRRR/0');
    				$content = explode('WRRRR/0',$content);
    				 
    				foreach($content AS $ar){
    					if(strpos($ar,$suche)){
    						echo $ar.'...<br />';
    					}
    				}
    				$i++; 
    			}
    		}
    		
    		#Suchergebnisse aus der Datenbank	
    		$sql = db_query('SELECT * FROM prefix_projekte WHERE `titel` LIKE "%'.$suche.'%" or `bauherr` LIKE "%'.$suche.'%" or `text` LIKE "%'.$suche.'%"');
    		while($dbsearch = db_fetch_object($sql)){
    			echo $dbsearch->titel;
    			echo $dbsearch->bauherr;
    			echo $dbsearch->text;
    			$i++;
    		}
    		
    		# Wenn nichts gefunden
    		if($i == '0'){
    			echo 'Keine Suchergebnisse gefunden!';
    		}
    		
    	}
    	else{
    		echo 'Keine Suchergebnisse gefunden!<br><br><br></div>' ;
    	}
    	$design->footer();
    	?>


    das suchen klappt soweit auch ...



    was ich noch nicht ganz gerafft hab ist wie das mit dem "Preview" text klappt? ... also wie im Script von Sniper nur ein teil des strings ausgegeben wird ...

    ich schätze mal das ist das oder:

    $content = str_replace($suche,'<b>'.$suche.'</b>',$content);
    				$content = wordwrap($content,'80','WRRRR/0');
    				$content = explode('WRRRR/0',$content);


    könnte mir das eventuell jemand erklären?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das sind alles "normale" php Funktionen, da geht man in die Doku und schlägt die Befehle nach, dann sollte man das, wenn man programmieren will, verstehen können, diese Eigeninitiative fehlt dir irgendwie traurig

    de2.php.net/manual/de/function.str-replace.php
    de2.php.net/manual/de/function.wordwrap.php
    de2.php.net/manual/de/function.explode.php

    Wenn du das dann besser nachvollziehen willst, kannst du mit var_dump($variable); den Inhalt einer Variable zu Test-/Debugzwecken mal ausgeben, dann kannst du dir auch jeden Zwischenschritt, der dabei entsteht anschauen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    was ich nicht versteh ist eigentlich das: WRRRR/0
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Ausgehend von dem kleinen Teil des Codes den du gepostet hat, könnte da auch >IOSNHFGdoisnfsdfods(4839040< stehen.

    Aus der Doku: Der optionale Parameter break wird als Zeichen(kette) für den Zeilenumbruch verwendet.
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ich hab auch den kompletten code gepostet lächeln
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Also wie gesagt, mit WRRRR/0 werden lediglich die einzelnen Abschnitte voon wordwrap() unterteilt. Da könnte alles mögliche stehen, die Zeichenkette sollte eben nur nicht zufällig anderweitig in $content auftauchen, daher WRRRR/0.

    Der Rest sollte sich eben aus der Doku ergeben.
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    okay merci lächeln
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten