php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-04-2010, 22:34
veil
 Registrierter Benutzer
Links : Onlinestatus : veil ist offline
Registriert seit: Aug 2009
Beiträge: 59
veil befindet sich auf einem aufstrebenden Ast
Standard Wie geht ein Suchergebnisfilter ?

Hallo,

weiss jemand wie man nach einer Abfrage das Suchergebnis nachträglich mit weiteren Kriterien eingrenzt ? Die Kriterien werden dabei als Link ausgegeben.

Ich suche da schon seit Stunden bei Google und finde dazu gar nichts.
Mit Zitat antworten
  #2 (permalink)  
Alt 19-04-2010, 22:39
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

ohne weitere Infos dazu, was du genau meinst und wie dein (relevanter) Code bisher aussieht, fürchte ich, dass man dir nicht helfen kann.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 19-04-2010, 22:57
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ich pflichte Amica natürlich bei.

Generell aber ist es so, dass man den Suchfiilter definiert, bevor man die Suche (in der DB) durchführt. Dadurch bist du wesentlich performanter und ersparst dir überflüssige Datenmengen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #4 (permalink)  
Alt 20-04-2010, 02:15
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Das nennt sich faceted search.

Faceted Search with Solr | Enterprise Search support for Apache Lucene and Solr by Lucid Imagination
Mit Zitat antworten
  #5 (permalink)  
Alt 20-04-2010, 09:54
veil
 Registrierter Benutzer
Links : Onlinestatus : veil ist offline
Registriert seit: Aug 2009
Beiträge: 59
veil befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php

// verbindung zur DB
include('../Connections/Test.php');
mysql_select_db($database_Test$Test);
/* -------------------------- */
$suche $_GET['suche'];
$plz $_GET['post'];
$umkreis $_GET['umkreis'];

if (
$_GET['post'] == "" and $_GET['umkreis'] == "")
$plz '01067' and $umkreis 9000;} 
if (
$_GET['post'] == "" and $_GET['umkreis'] != "")
{echo 
"Wählen Sie einen Ort";}
if (
$_GET['umkreis'] == "" and $_GET['post'] != "")
{echo 
"Wählen Sie einen Umkreis";}
else {

/* -------------------------- */
if (isset($_GET['submit'])) {
$sql_rad mysql_query("SELECT geo_l, geo_b, ort FROM `cix_plz` WHERE `plz` = '$plz' OR `ort` = '$plz'");
$erg_rad mysql_fetch_object($sql_rad);

// Umrechnung von GRAD IN RAD

$rad_l $erg_rad->geo_l 180 M_PI;
$rad_b $erg_rad->geo_b 180 M_PI;

// jetzt erfolgt die eigentliche Abfrage

$query "SELECT  ort, plz, (
    6367.41 * SQRT(2*(1-cos(RADIANS(geo_b)) * 
    cos("
.$rad_b.") * (sin(RADIANS(geo_l)) *
    sin("
.$rad_l.") + cos(RADIANS(geo_l)) * 
    cos("
.$rad_l.")) - sin(RADIANS(geo_b)) * sin(".$rad_b.")))) AS Distance 
    FROM cix_plz WHERE 
    6367.41 * SQRT(2*(1-cos(RADIANS(geo_b)) * 
    cos("
.$rad_b.") * (sin(RADIANS(geo_l)) * 
    sin("
.$rad_l.") + cos(RADIANS(geo_l)) * 
    cos("
.$rad_l.")) - sin(RADIANS(geo_b)) * sin(".$rad_b."))) <= ".$umkreis."
    
    AND `frei` LIKE ('$suche')"
;

// die Ausgabe (vereinfacht)
$sql mysql_query($query);
while( 
$erg mysql_fetch_object($sql) ) {

    echo 
'<pre>'print_r($ergtrue), '</pre>';

$num_rows mysql_num_rows($sql);

}}}
echo 
$num_rows;

?>
Dies ist eine Umkreissuche, zusätzlich wird noch ein anderes Kriterium abgefragt. "$suche"
Jetzt soll man nach Ausgabe des Ergebnisses filtern können, sodass sich das Ergebnis auf das reduziert.
Ein Beispiel: Ausgabe aller Orte in Deutschland, dann Filter: Nur Orte in NRW, dann Filter: nur Orte im Regierungsbezirk Münster.

In der Tabelle stehen dann dafür die entsprechenden Spalten.

An sich funktioniert die Abfrage mit zusätzlichen Kriterien , ich frage mich nur wo ich die Abfrage speichere, damit man noch nachträglich filtern kann.

Speichert man den query vielleicht in einem "hidden field" ?
Mit Zitat antworten
  #6 (permalink)  
Alt 20-04-2010, 12:41
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

ich würde nicht die ganze Query speichern, sondern nur die Filteroptionen.

Wo du sie "zwischenspeicherst" ist dabei eigentlich egal. Du kannst sie mittels hidden filed übergeben, über die URL oder auch in einer Session oder einem Cookie. Hast also die volle Bandbreite: POST/GET/SESSION/COOKIE.

Session ist am unauffälligsten, setzt aber eine aktive session voraus. Am einfachsten zu implementieren ist vermutlich die POST-Variante. Wenn du das Suchergebnis auf mehrere Seiten aufteilst, kommst du mit Post nicht ohne weiteres klar, weil die normalen Links dann nicht mehr funktionieren. Hier wäre dann GET ne schöne alternative, aber nur wenns nicht zu viele Parameter sind. Und Cookies haben natürlich immer das Problem, dass sie vom User akzeptiert/geduldet werden müssen.

Halt alles seine Vor und Nachteile, such dir das aus, was für deine Situation am besten passt.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 20-04-2010, 13:28
veil
 Registrierter Benutzer
Links : Onlinestatus : veil ist offline
Registriert seit: Aug 2009
Beiträge: 59
veil befindet sich auf einem aufstrebenden Ast
Standard

Danke Tobiaz,

mein Grundgedanke war da wohl nicht so falsch.
Aber mich irritiert jetzt deine Aussage zum Query.

Die Abfrage die ausgeführt wird muss doch irgendwo gespeichert werden.
Also die komplette Abfrage, nicht nur der Filterwert.

Sonnst gibt es ja nichts zum abfragen.
Der Filter-Link muss doch auch die vorher ausgeführte Abfrage kennen, und dann die Abfrage erneut ausführen und dabei dann den Filterwert anhängen.

Oder ?
Mit Zitat antworten
  #8 (permalink)  
Alt 20-04-2010, 13:35
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

das Grundprinzip ist ja, dass dein Script genau so viele Informationen bekommt, wie es zum Erzeugen der Abfrage benötigt. Wenn die grundlegende Abfrage immer dieselbe ist, brauchst du nur die Filterbedingungen zu übergeben. Wenn es ganz verschiedene Abfragen sein können, kannst du die auch irgendwie durchnummerieren und die Nummer übergeben. Eben so viel, wie du PHP-seitig brauchst, um damit was anfangen zu können.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #9 (permalink)  
Alt 20-04-2010, 13:51
veil
 Registrierter Benutzer
Links : Onlinestatus : veil ist offline
Registriert seit: Aug 2009
Beiträge: 59
veil befindet sich auf einem aufstrebenden Ast
Standard

Ja die Abfragen wärn immer unterschiedlich, da man ja immer unterschiedliche Postleitzahlen oder Orte eingeben kann. Wäre es unsicher die ganze Query in einem hidden field zu speichern ?
Mit Zitat antworten
  #10 (permalink)  
Alt 20-04-2010, 14:08
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von veil Beitrag anzeigen
Wäre es unsicher die ganze Query in einem hidden field zu speichern ?
Das wäre sogar tödlich. Hidden-Felder sind manipulierbar. Anhand der Originalabfrage erkennt ein Angreifer Details über deine DB-Struktur und kann dann noch gezieltere Angriffe durchführen, wenn er z. B. aus "select * from foo" einfach "drop table foo" macht.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #11 (permalink)  
Alt 20-04-2010, 14:14
veil
 Registrierter Benutzer
Links : Onlinestatus : veil ist offline
Registriert seit: Aug 2009
Beiträge: 59
veil befindet sich auf einem aufstrebenden Ast
Standard

Aber das kann der Angreifer doch auch aus der Adresszeile des Browsers herauslesen, die ist ja öffentlich sichtbar.

Ich wollte die zeile die im Browser steht dann als LInk benutzen, und dann mit einer variable ein filterwert hinzufügen.

Dann wird nicht der ganze Query im hidden field gespeichert sondern nur, eine variable.
Ist besser so oder ?
Mit Zitat antworten
  #12 (permalink)  
Alt 20-04-2010, 14:47
rossixx
 Registrierter Benutzer
Links : Onlinestatus : rossixx ist offline
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
Blog-Einträge: 2
rossixx wird schon bald berühmt werden
Standard vielleicht so ?!?

eine variable im hiddenfeld is ok. denke ich.

vielleicht alles geschriebene überdenken, das eigene überarbeiten und ab die post.

ich würde das vielleicht so machen:

SELECT ort FROM table WHERE ort LIKE '$anfang%' // alle orte die mit $anfang beginnen, wobei das ein buchstabe oder auch eine buchstabenfolge sein kann.

dann zusatz filter anbieten z.b. per select feld die 16 bundesländer oder was du so brauchst.
an zusätzlichen filtern.

dann übergibst du $anfang , $dundesland und meinetwegen $landkreis

und du mußt dann deine neue query zusammenbauen, abhängig von den zusatzparametern.

z.b.

SELECT ort FROM table WHERE ort LIKE '$anfang%' AND bundesland=$bundesland
Mit Zitat antworten
  #13 (permalink)  
Alt 20-04-2010, 15:17
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von veil Beitrag anzeigen
Ja die Abfragen wärn immer unterschiedlich, da man ja immer unterschiedliche Postleitzahlen oder Orte eingeben kann.
Der Kern der Abfrage bleibt ja identisch. Es unterscheiden sich doch nur die Filter-Kriterien (WHERE) also reicht es auch, wenn du nur diese übergibst.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #14 (permalink)  
Alt 20-04-2010, 15:29
veil
 Registrierter Benutzer
Links : Onlinestatus : veil ist offline
Registriert seit: Aug 2009
Beiträge: 59
veil befindet sich auf einem aufstrebenden Ast
Standard

Danke,

ich werde das dann weiter so umsetzten.
Wenn ich den nächsten Tagen Schwierigkeiten habe, dann melde ich mich wieder hier im Forum.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
filter, suche


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mailversand geht und geht wieder nicht Master0Blicker PHP Developer Forum 6 04-07-2007 21:01
hidden feld per dropdown setzen (FF geht, IE geht nicht) Schlafmütze HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 5 01-06-2006 13:49
Geister im Script? Firefox geht, Inet Explorer geht nicht derEini Tutorials 32 17-02-2006 11:20
Warum geht das nicht ? - fast identischer SQL Befehl geht .. syco23 SQL / Datenbanken 10 10-07-2003 19:54
es geht und geht doch nicht whoda SQL / Datenbanken 3 14-02-2003 18:52

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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
 Alle PHP Scripte anzeigen

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