php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.04.2005, 10:44  
Gast
 
Beiträge: n/a
Standard Suchstring zusammensetzen

Hi leute,
ich habe da eine Frage, und zwar habe ich ein Skript, der eine Bilddatenbank nach verschiedenen Kriterien durchsucht. Das ganze läuft super, nur habe ich da was, das mich stört.
Und zwar setze ich den Suchstring immer umständlich folgendermaßen zusammen:
PHP-Code:
<?php
    
if($datum) {$searchstring="where (Datum LIKE '$datum')"$mindeins=1;}
    if(
$id) {if ($mindeins==1){$searchstring="$searchstring AND ";} else {$searchstring="where";} $searchstring="$searchstring (id LIKE '$id')"$mindeins=1;}
    if(
$ort) {if ($mindeins==1){$searchstring="$searchstring AND ";} else {$searchstring="where";} $searchstring="$searchstring (Ort LIKE '$ort')"$mindeins=1;}
?>
Und so gehts halt weiter bis alle Suchkriterien abgearbeitet sind.
Dann geht es weiter mit dem String zur Weitergabe bei allen Links auf der Seite:
PHP-Code:
<?php
    
if ($datum){$weitergabe="$weitergabe&datum=$datum";}
    if (
$ort){$weitergabe="$weitergabe&ort=$ort";}

?>
Dieser String füllt sich halt je nach Suchkriterien und wird dann zum Beispiel beim Blättern an den Link angehängt, damit sich das Suchergebnis nicht verändert wenn man blättert.

So und nun die Frage: Kann man das irgendwie schöne, kürzer, eleganter machen? Wie gesagt, es läuft, aber ich hätte gerne ein besseres System.

Achso und bitte nicht mit Sessions, das möchte ich nicht, ausserdem soll man einfach manuell eine Adresse in der Form
result.php?datum=01-01-2005&ort=sonstwo
eingeben können.

Es kann ja nicht sein, dass ich der einzige bin, der das so macht bzw. es schöner haben möchte.

Danke schon mal für die Mühe
coppy

EDIT: Mir ist klar, dass ich die beiden Sachen in eins zusammenschieben kann, aber dann wirds noch unübersichtlicher...
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.04.2005, 11:00  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

immer diese designfetischsisten :P
eine möglichkeit wäre die seiten-links in buttons umzuwandeln und via hiddenfields das ganze zu übergeben.

und wenn ich den source richtig interpretieren tu bitte allen den gefallen:
register_globals
http://www.phpfriend.de/ftopic26569.html
-> lesen, verstehen, umsetzen und nicht register_globals auf on stellen !!

besonders das hier mal beachten:
error-reporting
Zum testen von Scripts setzt man normalerweise am anfang des scripts (oder direkt in einer config-datei die immer Includet wird)
PHP-Code:
error_reporting(E_ALL); 
damit werden dann alle Fehler ausgegeben.

sowas: if ($datum) ist nicht suaber, variablen überprüft man mittels isset()


und dann kannst du auf die POST bzw GET-Variablen via
$_REQUEST zugreifen.

mfg
robo47
robo47 ist offline  
Alt 19.04.2005, 11:05  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Schöner wäre es mal, wenn du den Code etwas besser formatieren würdest. Der Code läuft nicht schneller, wenn du Zeilen sparst. Und dann einfacher, die Bedingungen in einen Array zu schreiben, und dann am Schluss in einen String umwandeln:
PHP-Code:
<?php
$search 
= array();
if(!empty(
$datum)) {
    
$search[] = "Datum LIKE '$datum'"
}
if(!empty(
$id)) {
    
$search[] = "id LIKE '$id'";
}
if(!empty(
$ort)) 
    
$search[] = "Ort LIKE '$ort'";
}
....
$searchstring "WHERE " implode'AND'$search);
$weiterstr str_replace(' LIKE ''='implode('&'$search));
?>
Den ersten String benutzst du für die DB-Abfrage. Falls in den Variablen keine "Wildcards" (Platzhalter verwendet werden, benutze "=" statt "LIKE". Der zweite String dient als Parameter für die Links.

[edit] Hab die überflüssigen Klammen noch rausgeneommen
__________________
Gruss
L
lazydog ist offline  
Alt 19.04.2005, 11:09  
Gast
 
Beiträge: n/a
Standard

Hi robo,
deine Hinweise habe ich hier schon 1000 mal gelesen, danke!
$_GET brauch ich nicht, hatte da schon einen Thread darüber, hab das anders gelöst.

Das mit isset() habe ich natürlich schon drin, allerdings nicht in der (nicht mehr ganz aktuellen) Version, die ich hier auf dem Rechner habe.

Hidden Fields benutze ich nur sehr ungerne, ausserdem würde das ja eine GET-Übergabe der Suchkriterien unterbinden und ich könnte nicht direkt zu Suchergebnissen verlinken, weil ja alles auf POST läuft.

Ich hätte gedacht, da gibts vielleicht eine einfachere Lösung...

EDIT: Danke, lazydog, das sieht schon schöner aus ich werd das mal heute abend umsetzen. Und LIKE ist schon bewusst gewählt, weil wildcards auch vorkommen können.
 
 


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
[Erledigt] RGB Wert zusammensetzen aus Tabellendaten Thorsten PHP Tipps 2008 2 27.05.2008 11:57
Parsen von Delimitern Basti Tutorials 0 30.09.2006 21:24
Datei in mehreren Teilen uploaden und wieder zusammensetzen? nicobischof PHP Tipps 2006 6 08.08.2006 08:46
[PHP] Variable zusammensetzen horvath-media PHP Tipps 2006 9 31.05.2006 14:25
Bilder zusammensetzen HTML, Usability und Barrierefreiheit 3 14.03.2006 16:29
Variable aus Variablen zusammensetzen juhuwoorps PHP Tipps 2007 1 28.11.2005 21:50
Daten aus MySQL-abfrage zum Link mit id zusammensetzen maccoder Datenbanken 2 13.09.2005 16:49
[Erledigt] Kombinierter Suchstring mit MAX? Datenbanken 6 19.07.2005 11:38
variablen zusammensetzen...syntax probleme PHP Tipps 2005-2 2 08.06.2005 15:10
Variable zusammensetzen PHP Tipps 2005 2 29.04.2005 10:48
Suchstring parsen PHP Tipps 2005 4 04.01.2005 23:29
String zerpflücken und wieder zusammensetzen Paulo PHP Tipps 2004-2 7 15.11.2004 17:40
Variablenname dynamisch zusammensetzen RoDa PHP Tipps 2004 3 19.09.2004 14:13
Variablen Zusammensetzen PHP Tipps 2004 5 09.07.2004 18:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
suchstring parsen, php suchstring zusammensetzen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:26 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.