SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.05.2002, 16:54:39
ghunt ghunt ist offline
Anfänger
 
Registriert seit: May 2002
Ort: Braunschweig
Alter: 48
Beiträge: 3
ghunt eine Nachricht über ICQ schicken
Auf einen String in einer PHP-Datenbank überprüfen !

Halli und Hallo.

Ich habe folgende Situtation : Ich erschaffe gerade eine Knowledgebase.
In dieser befinden sich natürlich etliche Themen, die ich aber nicht immer alle gebrauchen kann.
Ich möchte nun folgendes erreichen :
Nach Eingabe eines Suchstrings in einem Formular werden alle Datensätze der Datenbank komplett angezeigt, die einen Suchstring enthalten.
Dabei müssen aus der Datenbank zwei Felder überprüft werden, nämlich die Überschrift und der Text.
Welche Funktion kann ich dafür benutzen, also wie kann ich einen Text nach einem String durchsuchen lassen ?
Meine textfelder sind vom Typ Longtext.

Auf viele schnelle Antworten hoffend
G.Hunt
Mit Zitat antworten
  #2  
Alt 17.05.2002, 19:36:22
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
...
WHERE
feld1 LIKE '%$Suchstring%' OR
feld2 LIKE '%$Suchstring%'

Aber vielleicht bringt dir auch die FULLTEXT SEARCH. Such in der MySQL Doku nach diesem Begriff.
Mit Zitat antworten
  #3  
Alt 17.05.2002, 22:02:15
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 43
Beiträge: 992
Hi @ll

Ergänzung:

Like gibt alle Rows aus, wo der Suchbegriff gefunden wird.

Man kann nun mehrere Optionen setzten durch %
die Position des % gibt an das es davor bzw. danach egal ist was steht.

zB:
like '".$search."%'
Sucht alle Rows die mit search beginnen

like '%".$search."'
Sucht alle Rows die mit search enden

like '%".$search."%'
Sucht alle Rows wo search in jeglich Art vorhanden ist
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #4  
Alt 21.05.2002, 15:50:35
Benutzerbild von kaiser_sosse
kaiser_sosse kaiser_sosse ist offline
Anfänger
 
Registriert seit: Apr 2002
Beiträge: 17
mahlzeit,

ich programmiere im moment ebenfalls eine wissensdatenbank für einen grossen it-dienstleister.

also entweder ganz konservativ:
"SELECT * FROM tbl_bla
WHERE ueberschrift like LIKE '%$volltext%
OR text like LIKE '%$volltext%'"

oder
du erzeugst einen volltextindex auf die entspechenden felder deine mysql-datenbank (ab version3.23.23) folgendermaßen:

"ALTER TABLE tablename ADD FULLTEXT(ueberschrift, text)"
oder benutze MySQL-Front dafür.

die abfrage lautet dann:
"SELECT * FROM tbl_bla
WHERE MATCH (ueberschrift, text) AGAINST ('$volltext')"

vorteile: sauschnell

2 wichtige nachteile:
- basiert auf ganzen wörtern. d.h. wenn du nach "banane" suchst, wird "bananen" schon nicht mehr gefunden.
- wörter müssen min. 4 zeichen lang sein.

ich habe jedenfalls auf grund der o. a. nachteile den konventionellen weg gewählt.

gruss
gunnar
Mit Zitat antworten
  #5  
Alt 21.05.2002, 16:39:10
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
Dann schreib mal ein Script mit WHERE Bedingung was

+MySQL "Ein Text" -"Das nicht" -bla dies

kann, sie es FULLTEXT SEARCH kann. Das wird ne arbeit ;)
Mit Zitat antworten
  #6  
Alt 21.05.2002, 18:35:20
Benutzerbild von kaiser_sosse
kaiser_sosse kaiser_sosse ist offline
Anfänger
 
Registriert seit: Apr 2002
Beiträge: 17
icke nochmal,

dazu brauchst du aber mysql 4.0..
haste aber bei den meisten providern nicht.
abgsehen davon probier mal einem user zu erklären warum "die blöde kiste" "banane" findet und "banane" schon wieder nicht.

aber muss man letzendlich selber abschätzen können, ob man gnadenlose funktion und performance brauch oder eben usabilty.


die "+" lösung; d.h. zwei strings die in beliebiger reihenfolge im formular durch ein "+" getrennt eingebenen werden können; sieht bei mir dann so aus:

if ($volltext != "") {
$suchstring .= "§volltext=$volltext";
if (strstr($volltext,'+')) {
$teil = explode("+",$volltext);
foreach ($teil as $wert) {
$sql .= " AND (problem LIKE '%$wert%' || ursache LIKE '% $wert%' || loesung LIKE '%$wert%')";
}
}
else {
$sql .= " AND (problem LIKE '%$volltext%' || ursache LIKE '% $volltext%' || loesung LIKE '%$volltext%')";
}

gruss

gunnar
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:52:26 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt