- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 07-02-2005, 15:19
dumbXhead@
 Newbie
Links : Onlinestatus : dumbXhead@ ist offline
Registriert seit: Feb 2005
Beiträge: 5
dumbXhead@ ist zur Zeit noch ein unbeschriebenes Blatt
Standard Keyword Suche

Ich habe in meiner MySQL Tabelle "keywords" die Keywords gespeichert. Diese hat 2 Spalten "id" und "keyword". Pro id können mehrere Keywords in der Tabelle vorkommen.
Wenn ein User die Suche auf meiner Seite benutzt, sollen die id's folgendermaße aus der Tabelle ausgelsen werden:


$suchstring="test";

- Standard: falls $suchstring gleich ein Teil bzw. das ganze Keyword ist, soll die id gefunden werden.

- Keyword in eckigen Klammern in DB: [testkeyword]
id soll nur gefunden, werden wenn $suchstring exakt dem Keyword in den eckigen Klammern entspricht

- ausschließendes Keyword in DB: -sonicht
id soll nicht gefunden werden, falls $suchstring "sonicht" ist

Wie sieht das SQL-Statement für sowas aus? Schaff das leider selbst nicht
Mit Zitat antworten
  #2 (permalink)  
Alt 07-02-2005, 15:44
Patrick_PQ
 Registrierter Benutzer
Links : Onlinestatus : Patrick_PQ ist offline
Registriert seit: Aug 2003
Beiträge: 480
Patrick_PQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also, der User übermittelt den Suchbegriff und den Suchmodus (exakter Treffer, Treffer, Ausschluss) per Formular an ein php-Skript.

Zuerst musst du unterscheiden
a) Suchbegriff beginnt nicht mit einem "-" oder beginnt nicht mit einem "[" und endet mit einem "]"
b) Suchbegriff beginnt mit "[" und endet mit "]"
c) Suchbegriff beginnt "-"

Das kannst du mit IF/SWITCH und den String-Funktionen von PHP ganz easy feststellen.

in Fall a lautet die SQL-Syntax
PHP-Code:
"... suchbegriff like '".$_POST['NAME_DEINES_INPUT_FURE_SUCHBEGRIFF']."' ..." 
bei b)
PHP-Code:
"... suchbegriff = '".$_POST['NAME_DEINES_INPUT_FURE_SUCHBEGRIFF']."' ..." 
und c schaffst du jetzt sicher selber

HTH!
Mit Zitat antworten
  #3 (permalink)  
Alt 07-02-2005, 16:16
dumbXhead@
 Newbie
Links : Onlinestatus : dumbXhead@ ist offline
Registriert seit: Feb 2005
Beiträge: 5
dumbXhead@ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Patrick_PQ Also, der User übermittelt den Suchbegriff und den Suchmodus (exakter Treffer, Treffer, Ausschluss) per Formular an ein php-Skript.
Nein, der User übermittelt den Suchmodus eben nicht selbst (wenns so wär, hätt ichs auch auf ne Art nach deiner Lösung gemacht, das ist jedoch so nicht möglich )
Die ids sind ids von Einblendungen, die passend zum Suchwort eingeblendet werden sollen.

Geändert von dumbXhead@ (07-02-2005 um 16:21 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 07-02-2005, 17:43
Patrick_PQ
 Registrierter Benutzer
Links : Onlinestatus : Patrick_PQ ist offline
Registriert seit: Aug 2003
Beiträge: 480
Patrick_PQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ähm, der User gibt doch "-parishilton" ein, wenn er das Suchwort "parishilton" nicht haben möchte, wenn der User "[Hilton]" eingibt erkennst du an den Klammern das parishilton nicht gewünscht ist ... also gibt der User letztlich doch den Suchmodus ein indem er das Minuszeichen bzw. eckige Klammern verwendet.

Du musst nur prüfen, welche Variante der User duch seine Syntax gewählt hat - oder habe ich das falsch verstanden ?!
Mit Zitat antworten
  #5 (permalink)  
Alt 08-02-2005, 11:17
dumbXhead@
 Newbie
Links : Onlinestatus : dumbXhead@ ist offline
Registriert seit: Feb 2005
Beiträge: 5
dumbXhead@ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, ich habs vielleicht nicht so verständlich beschrieben, deshalb hast du ganz anders gedacht als ich.

Also die Suche soll eine News-Datenbank mir diversen Artikeln durchsuchen. Der User selbst sucht mit ganz normalen Suchbegriffen (ohne Ausschließungen oder sonstiges) sondern nur mit Wörtern.

Beispiele für Suchbegriffe: "hilton", "paris hilton", "paris"


Er bekommt als Ergebnis dann passende Artikel geliefert und am rechten Rand der Seite Werbeanzeigen, deren Keywords mit dem Suchbegriff übereinstimmen (so ähnlich wie Google-AdWords). Und die Keywords der Anzeigen sind in der Datenbank gespeichert, auch inkl. Ausschließungen oder exakt gewünschter Treffer.

Beispiele für Keywords: "paris", "reise", "-parishilton"

Die Anzeige mit den Keywords soll also zb nur erscheinen falls nach "paris" oder "reise" gesucht wurde. Wenn zb "parishilton" eins der Suchworte war jedoch nicht.

Verstehst du jetzt ungefähr, was ich meine?

Die Syntax der Keywords gibt also nicht der User an, sondern ist bereits so in der DB gespeichert.

Geändert von dumbXhead@ (08-02-2005 um 11:19 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 08-02-2005, 11:36
Patrick_PQ
 Registrierter Benutzer
Links : Onlinestatus : Patrick_PQ ist offline
Registriert seit: Aug 2003
Beiträge: 480
Patrick_PQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kappiert. Die Vorgehensweise bleibt grundsätzlich bestehen. Du musst mit LIKE und NOT IN arbeiten.
Mit Zitat antworten
  #7 (permalink)  
Alt 08-02-2005, 14:15
dumbXhead@
 Newbie
Links : Onlinestatus : dumbXhead@ ist offline
Registriert seit: Feb 2005
Beiträge: 5
dumbXhead@ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Damit schaff ichs nicht, weil ja die Syntax wie gesagt nicht durch den User festgelegt wird sondern in der DB steht.
Mit Zitat antworten
  #8 (permalink)  
Alt 08-02-2005, 15:49
Patrick_PQ
 Registrierter Benutzer
Links : Onlinestatus : Patrick_PQ ist offline
Registriert seit: Aug 2003
Beiträge: 480
Patrick_PQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich wiederhole nochmal: du brauchst like um Teile von Keywörtern zu finden und NOT IN um Ausschlüsse zu finden.

Wenn dein Suchbegriff "reise" ist und das Keyword "[Weltreise]" muss du mit like arbeiten ... etwa keyword like '[*reise*]' (Metazeichen je nach Datenbank!)

Die Schschlüsse lassen sich wahrscheinlich nur mit Unterabfragen (Stichwort NOT IN) lösen.

Bin ich jetzt auf der richtigen Spur - oder pass das immer noch nicht ?
Mit Zitat antworten
  #9 (permalink)  
Alt 09-02-2005, 10:13
dumbXhead@
 Newbie
Links : Onlinestatus : dumbXhead@ ist offline
Registriert seit: Feb 2005
Beiträge: 5
dumbXhead@ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hast du dir das ganze überhaupt schon mal praktisch vorgestellt?
Wenn Keywords, exakte Keywords und ausschließende Keywords in der selben Spalte stehen?
Wie soll ich dann mit NOT IN arbeiten? Der User gibt wie gesagt die Syntax nicht an.
Mit Zitat antworten
  #10 (permalink)  
Alt 09-02-2005, 11:49
Patrick_PQ
 Registrierter Benutzer
Links : Onlinestatus : Patrick_PQ ist offline
Registriert seit: Aug 2003
Beiträge: 480
Patrick_PQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

ich versuche mir das praktisch vorzustellen und zu helfen. Folgendes habe ich verstanden: Der Bunutzer gibt einen Suchbegriff ein und zu diesem Suchbegriff wird ein Ergebins geliefert. Zusätzlich sollen Hinweise in Verbindeung mit der Tabelle keywords erfolgen - soweit korrekt?

Wenn ja: gibt der Benutzer "reise" ein und in deiner Tabelle keywords steht "reise" (exakter Treffer) soll ein Hinweis erfolgen. Steht in keywords "[weltreise]" reicht eine teilweise Übereinstimmung aus - da "reise" - das Suchwort des Users enthalten ist - erfolgt ebenfalls ein Hinweis. Soweit korrekt ?

Und jetzt erklär mir was bei die Ausschlüsse bewirken sollen. Falls bei einem Ausschluss keine Hinweise gegeben werden sollen, ist NOT IN doch genau richtig. Der User gibt "rucksackweltreise" ein und in keywords in "-rucksackweltreise" vorhanden. Dann sollen nur Hinweise gegeben werden wenn
PHP-Code:
...keyword = ('reise' or keyword like '%reise%'
and 
keyword NOT IN (select keyword from keywords where left(keyword,1) ='-') ... 
jedenfalls vom Prinziep her. Das "-" muss beim Stringvergleich berücksichtigt werden.

Falls ich dich nicht verstehe maul nicht rum, sondern erklär es so, dass ich es verstehen kann (konkrete Beispiele, Onlinebeispiel, Ansätze etc). Falls du es noch nicht bemerkt hast: ich bin bisher der einzige der versucht dir zu helfen ...
Mit Zitat antworten
  #11 (permalink)  
Alt 09-02-2005, 11:53
Patrick_PQ
 Registrierter Benutzer
Links : Onlinestatus : Patrick_PQ ist offline
Registriert seit: Aug 2003
Beiträge: 480
Patrick_PQ ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry, habe gerade gesehen, dass bei eckigen Klammern die exakte Übereinstimmung gewünscht ist ... aber das ändert am Prinziep ja nichts ...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
belbit Ticketcenter-Script ansehen belbit Ticketcenter-Script

Verwalten Sie Supportanfragen zuverlässig im Web2.0-Stil anstatt per E-Mail - inkl. Überprüfung, ob Antworten gelesen wurden und mehr.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Ticketsystem
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

24.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:37 Uhr.