 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
05.01.2006, 22:17
|
#16
|
|
TP-Junior
Registriert seit: Nov 2004
|
Snif snif snif...
Ich hab das mal versucht über Dreamweaver so anzupassen und dann auch den Code dann im Quelltext angepasst. Doch es funktioniert nicht. Nun wird gar nichts mehr gefunden.
Ein Teil des Quelltextes sieht nun wie folgt aus:
Code:
<?php
$colname_rs_master = "1";
if(isset($_GET['colname1'])) {
$colname1=get_magic_quotes_gpc() ? $_GET['colname1'] : addslashes($_GET['colname1']);
} else $colname1="-----";
if(isset($_GET['colname2'])) {
$colname2=get_magic_quotes_gpc() ? $_GET['colname2'] : addslashes($_GET['colname2']);
} else $colname2="-----";
mysql_select_db($database_gigainfo, $gigainfo);
$query_rs_master = "SELECT Firmenname, PLZ, Adresse, Ort, Telefon FROM mitglieder WHERE Firmenname LIKE '%$colname1%' OR Firmenname LIKE '%$colname2%' OR Adresse LIKE '%$colname2%' OR Adresse LIKE '%$colname2%' OR Ort LIKE '%$colname1%' OR Ort LIKE '%$colname2%' ORDER BY mitglieder.Firmenname";
$rs_master = mysql_query($query_rs_master, $gigainfo) or die(mysql_error());
$row_rs_master = mysql_fetch_assoc($rs_master);
$totalRows_rs_master = mysql_num_rows($rs_master);
?>
Ich getrau mich schon gar nicht mehr zu Fragen, aber könntet ihr diesen nochmals anschauen. Ich weiss nicht, wo der Fehler liegt. Hab schon unzählige Varianten getestet, es funzt einfach nicht.
Danke schon mal...!!!!
Grüsse an mein Retter und Helfer
|
|
|
05.01.2006, 22:41
|
#17
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Dumme Frage - bist Du denn mit mysql verbunden ?
Setz mal am Anfang error_reporting(E_ALL); ein und schau mal auf die Warnungen.
|
|
|
05.01.2006, 22:48
|
#18
|
|
TP-Junior
Registriert seit: Nov 2004
|
Ja, ich bin verbunden!
Denn sobald ich im Dreamweaver einen "normalen" Filter einsetze, funktioniert ja alles korrekt! Ich möchte halt einfach, dass die Besucher z. Bsp. nach Namen und Ort suchen können. Und das geht nun mal nicht direkt über Dreamweaver, da ist handcoden angesagt.... leider leider!
Dachte eigentlich, dass das ganz was "normales" ist.
So läufts übrigens jetzt:
PHP-Code:
$colname_rs_master = "1";
if (isset($_GET['colname'])) {
$colname_rs_master = (get_magic_quotes_gpc()) ? $_GET['colname'] : addslashes($_GET['colname']);
}
mysql_select_db($database_gigainfo, $gigainfo);
$query_rs_master = sprintf("SELECT Firmenname, PLZ, Adresse, Ort, Telefon FROM mitglieder WHERE Firmenname LIKE '%%%s%%' OR mitglieder.Adresse LIKE '%%%s%%' OR mitglieder.Ort LIKE '%%%s%%' ORDER BY mitglieder.Firmenname", $colname_rs_master,$colname_rs_master,$colname_rs_master);
$rs_master = mysql_query($query_rs_master, $gigainfo) or die(mysql_error());
$row_rs_master = mysql_fetch_assoc($rs_master);
$totalRows_rs_master = mysql_num_rows($rs_master);
Aber eben, so halt nur mit Firmenname ODER Ort. Beides zusammen geht nicht...
|
|
|
05.01.2006, 22:52
|
#19
|
|
TP-Junior
Registriert seit: Nov 2004
|
Übrigens, wenn ich keine Suchabfrage eingebe werden jetzt (mit dieser Variante) alle Datensätze ausgegeben. Aber sobald ich nach was suche, auch nur nach einem Firmennamen, erhalte ich immer die Ausgabe, dass kein Datensatz gefunden wurde...!
|
|
|
06.01.2006, 00:13
|
#20
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Lass Dir doch endlich mal den erstellten Query mit echo auf dem Bildschirm ausgeben.
So findet man den Fehler doch am schnellsten!
|
|
|
06.01.2006, 07:08
|
#21
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Ändere mal das:
$rs_master = mysql_query($query_rs_master, $gigainfo) or die(mysql_error());
In das:
// $rs_master = mysql_query($query_rs_master, $gigainfo) or die(mysql_error());
echo $query_rs_master;
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
06.01.2006, 08:48
|
#22
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Zitat:
|
Zitat von AMIPEON
Übrigens, wenn ich keine Suchabfrage eingebe werden jetzt (mit dieser Variante) alle Datensätze ausgegeben. Aber sobald ich nach was suche, auch nur nach einem Firmennamen, erhalte ich immer die Ausgabe, dass kein Datensatz gefunden wurde...!
|
Hallo
Du musst Dir einfach mal verständlich machen, was Du da machst.
Gibst Du in ein Suchfeld den Begriff "Meier" ein. Im SQL-Statement wird mit dem Operator "or" verbunden.
Jetzt suchst Du in 2 Spalten nach dem "Meier". bsp. Name und Firma
Folgende Datensätze werden Dir ausgegeben:
Alle Namen,die den Begriff "Meier" in sich tragen und alle Firmen, die den Begriff "Meier" beinhalten.
Verbindest Du mit dem Operator "and" passiert folgendes:
Es werden nur Datensäte gefunden, die sowohl im Namen als auch im Firmenname den Begriff "Meier" tragen.
Gibst Du jetzt 2 Werte in Dein Textfeld ein, dann wird nach dem Begriff gesucht, der dort eingegeben ist. Gibst du z.B. "Meier Musterfirma" ein, wird natürlich kein Datensatz gefunden, denn weder im Namen noch in einer Firma steckt dieser Begriff "Meier Musterfirma" als ganzes. Woher soll das Script wissen, dass Du vorhast, die Spalten nach Einzelwörtern zu durchsuchen?
Der Dreamweaver generiert zwar einfache kleine Applikationen, aber das Merkmal liegt auf "einfach". Was Du möchtest, ist schon eine etwas größere Sache.
Du könntest in Deinem Suchformular den User noch nach "and" oder "or" auswählen lassen und die kannst mit 2 Suchfeldern arbeiten. Diese Suchfeldern ordentliche Namen geben z.B. suchFirma und suchName und diese Variablen im Assistenten ganz ordentlich übergeben. Verwende als Variablen-Name colname für das Formularfeld suchName und colname1 für Formularfeld suchFirma
Dann solltest du hier auch mal das Formular zeigen. Wenn nämlich die Übergabe des Wertes nicht funktioniert bzw. die Methode falsch ist (GET) oder (POST) oder Groß- und Kleinschreibung nicht beachtet wird, kann es auch sein, dass dort der Fehler steckt.
Nochwas: Wenn Du Dir eine Applikation über den Dreamweaver generiert, diese im Quellcode später änderst, aus irgendeinem Grund dann wieder mit dem Assistenten arbeiten willst, wird das Programm den handgeschriebenen Scriptcode vermtl. überschreiben.
__________________
Liebe Grüße, die Judi!
|
|
|
10.01.2006, 12:31
|
#23
|
|
TP-Junior
Registriert seit: Nov 2004
|
Hallo zusammen
Ich habs leider nicht hingekriegt. Hab nun zwei Felder im Formular (1x für Suche nach Firma und 1x für Suche nach Ort). So funzt es jetzt.
Danke für eure Bemühungen und Hilfestellungen.
|
|
|
11.01.2006, 22:35
|
#24
|
|
TP-Veteran
Registriert seit: Sep 2004
|
Zitat:
|
Zitat von DSB
Du musst die einzelnen Suchbegriffe anhand des Leerzeichens trennen und Deine Abfrage dann so gestalten:
WHERE Firmenname LIKE '%begriff1%' OR Firmenname LIKE '%Begriff2%OR Adresse LIKE '%begriff1%' OR Adresse LIKE '%Begriff2%' OR ..
|
hätte dazu mal ne frage:
wenn ich nun in das suchfeld 4 begriffe eingebe generiere ich mir eine abfrage die in jeder spalte jeweils 4 mal sucht.... was ist nun der unterschied zu einer volltextsuche? (ausser das die abfrage da ja anders ist), oder könnte mn das so auch als volltextsuche verwenden?
|
|
|
11.01.2006, 22:48
|
#25
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Iss scho recht. :-)
Das ist von der Funktion her natürlich eine Volltextsuche, die sich über jede Spalte erstreckt.
Ich persönlich würde das aber nie so gestalten, da es ja keinen Sinn macht nach einem Straßennamen in z.B. der Spalte Vorname zu suchen und so auch die Performance etwas in die Knie zwingt.
Ich lege dem User immer ein Suchformular mit allen Spalten vor und lasse ihn das eingeben, was er weiß.
Hat er in einem Suchfeld, was die Spalte repräsentiert, etwas eingegeben, so wird das Feld mit in den Query aufgenommen.
So hat er über seine Suchbegriffe einen sehr effektiven Filter und findet die gesuchten Daten mit Sicherheit.
Und er kann selbst nach Kriterien filtern, die mir vielleicht gar nicht einfallen.
Geändert von DSB (11.01.2006 um 22:50 Uhr).
|
|
|
11.01.2006, 23:06
|
#26
|
|
TP-Veteran
Registriert seit: Sep 2004
|
aber du machst es auch so, das wenn 2 wörter in dem eingabefeld stehen, dann in der spalte 2 mal nach dem wort gesucht wird oder?
naja wenn ich zum beispiel ne suche nach etwas bestimmten habe, dann ehme ich in die query auch nur die spalten auf, die sinnvoll sind, also im prinzip wie du schon gesagt hast
|
|
|
11.01.2006, 23:16
|
#27
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Wenn ich in einem Query eine OR-Bedingung bilde, dann sucht er nicht "2mal" nach dem Wort.
Es ist genauso eine Bedingung wie "größer als 5" oder sowas.
Darum kümmert sich der MySQL-Server, der als Datenbanksystem auf die optimale Verarbeitung solcher Bedingungen getrimmt ist.
Darum ist es ja ein Datenbanksystem und eine solche Abfrage birgt keine Nachteile in sich.
|
|
|
11.01.2006, 23:21
|
#28
|
|
TP-Veteran
Registriert seit: Sep 2004
|
ja hatte mich falsch ausgedrückt. so meinte ich es auch, also du hast 2 wörter im eingabefeld und dann generierst du ne abfrage mit 'OR' und das nur über die relevanten spalten (also keine suche in vornamen bei strassensuche)
|
|
|
11.01.2006, 23:23
|
#29
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Ja genau.
Anders geht es ja auch nicht.
Es sei denn Du hast einen Volltextindex auf der Spalte liegen. Dann geht es besser mit MATCH AGAINST...
|
|
|
11.01.2006, 23:27
|
#30
|
|
TP-Veteran
Registriert seit: Sep 2004
|
und welche variante is besser? ich hab nämlich schon oft gelesen das diese andere möglichkeit mit against match viel auf die performance geht.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.
|
 |