php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.07.2008, 16:49  
Neuer Benutzer
 
Registriert seit: 28.07.2008
Beiträge: 12
Wellenbrecher1963 befindet sich auf einem aufstrebenden Ast
Standard spezielle SQL Abfrage wie in Google

Hallo Leute,

ich habe ein Projekt vor, dass eine Abfrage einer SQL Datenbank beinhaltet.

Momentan folgender Stand:

der String wird analysiert, ob die Suchbegriffe einzeln oder mehrere auftauchen, wenn ja, dann durchsuche ich den String nach Kommas (z.B. Auto, Felgen, Lack....") und ersetze diese durch " " (Space). Dann nehme ich diesen String wieder und explore diesen nach Trenner " " in ein Archiv.

Sowei so gut. Später muss ich noch einfügen, dass man erkennt, ob Besucher "Begriff, Begriff..." oder Begriff,Begriff" verwendet.

Nun stehe ich aber vor dem Problem, dass Begriffe wie "Haus Tür", also zusammen gehörige Begriffe in Anführungszeichen (wie von Google bekannt) , ebenfalls geteilt werden und nicht "so wie sie geschrieben sind - als ein Begriff" gesucht werden. Beine Funktion teilt die gnadenlos in '"Haus' und 'Tür"'. Ist ja auch logisch, da ich nach Space trenne.

Wie kann ich die SQL Suche dahin gehend abfangen, dass er auch Wortgruppen nicht teilt.

Und 2. Wie erreiche ich, dass Begriffe mit "-Suchbegriff" aus der Suche heraus genommen werden?

Also primitiv gesagt - eine vereinfachte Googlsuche für mySQL mit PHP!

Vielen Dank für Eure Lösungsansätze.

Euer Wellenbrecher
Wellenbrecher1963 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.07.2008, 17:20  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Du willst schnell mal Google nachprogrammieren...
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 28.07.2008, 17:28  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Stichwort "Regular Expressions"
__________________
Frank ist offline   Mit Zitat antworten
Alt 28.07.2008, 17:29  
Neuer Benutzer
 
Registriert seit: 28.07.2008
Beiträge: 12
Wellenbrecher1963 befindet sich auf einem aufstrebenden Ast
Standard

Hihi, nein, das haben schon andere versucht und sind unter gegangen, siehe Fireball, oder Altavista

Nein, ich habe eine Videodatenbank vor. Die Videolinks sind mit Benutzerdaten und META TAGS in eine Datenbank geschrieben. Und genau die META TAGS sollen durchsuchbar sein. Und ich will das so machen, dass alle eingegebenen Suchbegriffe abgefangen und in den SQL String eingebunden werden.

Tja, und wie gesagt, auch mit UND / ODER usw.

Ich will gar kein Google 2 werden. Ich würde sogar Google integrieren, wenn das funktionieren würde



Ich lebe immer nach dem Motto: "Wenn Du Deinen Feind nicht besiegen kannst, dann verbünde Dich mit Ihm!"



Wellenbrecher
Wellenbrecher1963 ist offline   Mit Zitat antworten
Alt 28.07.2008, 17:37  
Neuer Benutzer
 
Registriert seit: 23.07.2008
Beiträge: 10
MikeR befindet sich auf einem aufstrebenden Ast
MikeR eine Nachricht über ICQ schicken
Standard

Vielleicht solltest du dir überlegen eine fertige Lösung einzusetzen, beispielsweise Lucene. Von Lucene gibt es auch eine Implementierung in PHP, die Teil des Zend Frameworks ist.
MikeR ist offline   Mit Zitat antworten
Alt 28.07.2008, 19:34  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Google mal nach Boolscher Volltextsuche in MySQL.
Manko10 ist offline   Mit Zitat antworten
Alt 28.07.2008, 21:37  
ElPresidente
Gast
 
Beiträge: n/a
Standard

Bau dir halt einen Stringparser.
  Mit Zitat antworten
Alt 28.07.2008, 21:59  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Wozu, wenn MySQL mit der booleschen Volltextsuche schon eben dieses bietet?
Manko10 ist offline   Mit Zitat antworten
Alt 28.07.2008, 22:41  
Neuer Benutzer
 
Registriert seit: 28.07.2008
Beiträge: 12
Wellenbrecher1963 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
Google mal nach Boolscher Volltextsuche in MySQL.
Genau das hat es gebracht. Super. Danke.

Nun stehe ich aber vor einem neuen Problem. In dem SQL String werden die Suchstrings "wert wert2" ind \"wert wert2\" geändert und dann funktioniert die Abfrage in der Datenbank nicht mehr.

Soweit bin ich bis jetzt:
PHP-Code:
    // Datenbank abfragen
    
if (empty($_POST['VarSuchen']) || $_POST['VarSuchen'] == 0)
    {
        
#$sql = "SELECT * FROM $tusers=a LEFT JOIN $tfilms=b ON a.UserID=b.UserID ORDER BY b.VidRegDatum DESC limit ".($limitlower-1).",".$perpage;
        
$sql "SELECT * FROM $tusers=a, $tfilms=b WHERE a.UserID=b.UserID ORDER BY b.VidRegDatum DESC limit ".($limitlower-1).",".$perpage;
    }
    else
    {
        
// POST-String abfragen
        
if ($_SERVER['REQUEST_METHOD'] == "POST")
        {
            
$suchenPOST $_POST["Suchen"];
        }
        else
        {
            
$suchenPOST $_GET["Suchen"];
        }
    
        
// ++++++++++ Suchstring zerlegen +++++++++++
        
if (strchr($suchenPOST","))
        {
            
$suchenPOST str_replace(",","",$suchenPOST);
        }    
        
        if (
strchr($suchenPOSTchr(34)))
        {
            
$suchenPOST str_replace(chr(34),chr(39),$suchenPOST);
        }
        
        
// Suchstring zerlegen
        
$SuchenArray explode(" "$suchenPOST);

        
// Abfrage nun durchführen
        
$sql "SELECT * FROM $tusers=a, $tfilms=b WHERE MATCH (a.Branche,b.META,b.Describle) AGAINST ('";    
#a.UserID=b.UserID 
        
for ($x=0;$x<count($SuchenArray);$x++)    
        {
            
$sql .= "$SuchenArray[$x]";
            if (
$x<count($SuchenArray)-1)
            {  
                
$sql .= " ";
            }
        }
            
#$sql .= " group by b.VidID limit ".($limitlower-1).",".$perpage;
            
$sql .= "' IN BOOLEAN MODE) AND a.UserID=b.UserID group by b.VidID limit ".($limitlower-1).",".$perpage;
        
// Errorsuche
        
echo $sql;
        
#exit;    
    

ich habe versucht, dieses Problem mit:
PHP-Code:
$suchenPOST str_replace(chr(34),chr(39),$suchenPOST); 
zu lösen, aber irgend wie habe ich noch einen Denkfehler.

ich möchte folgenden Ausdruck erreichen:
PHP-Code:
.... '"Wert wert2"' .... 
also erst einfaches dann doppeltes Anführungszeichen dann Suchstring dann doppeltes und dann wieder einfaches Anführungszeichen.

Gebe ich das per phpMyAdmin genau so ein, wird die Abfrage exakt durch geführt. Lasse ich das durch PHP machen, ersetzt PHP die Zeichen, wie oben beschrieben und es werden NULL Datensätze gefunden.

Kotz-Brech-Würg

Vielen Dank für Eure Hinweise

Wellenbrecher
Wellenbrecher1963 ist offline   Mit Zitat antworten
Alt 28.07.2008, 23:17  
Neuer Benutzer
 
Registriert seit: 28.07.2008
Beiträge: 12
Wellenbrecher1963 befindet sich auf einem aufstrebenden Ast
Standard

Leute - Problem soeben gelöst.

mit :
PHP-Code:
$sql stripslashes($sql); 
habe ich den Erfolg bekommen, den ich haben wollte.

Funktioniert sensationell.

Danke an Alle, die mir geholfen haben. Gebe Euch ein Helles aus !!!!!



Schönen Abend noch....

Euer Wellenbrecher
Wellenbrecher1963 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage von einer Abfrage Datenbanken 5 27.01.2011 23:31
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
Google Sitemaps Fehler!? Frank Burian PHP-Fortgeschrittene 2 25.04.2006 15:03
abfrage begrenzen Cyrus Datenbanken 4 26.10.2005 11:29
Google "verarzchen" mit PHP !? Beitragsarchiv 31 18.09.2005 22:07
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Abfrage in array? BartTheDevil89 Datenbanken 5 10.05.2005 14:21
[Erledigt] IF() abfrage in variable packen PHP Tipps 2005 14 01.04.2005 17:23
Abfrage von Char-Feldern Datenbanken 9 04.02.2005 14:06
[Erledigt] SQL Abfrage funzt nicht Datenbanken 2 04.02.2005 11:09
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Abfrage funktioniert zwar, aber nicht korrekt Datenbanken 2 16.08.2004 09:10
2 Tabellen 1 Abfrage nilsfeld Datenbanken 6 11.08.2004 11:18
Abfrage aus DB noch mal ausgeben und Abfrage aus mehrern Tab PHP Tipps 2004 4 12.07.2004 15:00
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbankabfrage mehrere suchbegriffe, sql in google.de, google suche sql, google suchstring, suchanfragen bei google sql, sql abfrage mehrere suchbegriffe, sql mehrere suchbegriffe, sql suche mehrere wörter, php suchstring analysieren, google.de sql abfragen, google sql abfragen, php string suchfeld zerlegen abfrage sql, sql chr(34) php, spezielle suchbegriffe bei google, google spezielle suchbegriffe, spezielle abfragen sql, sql google suchfunktion, google abfragen php, sql suche google, sql abfragen in google

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum