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-02-2007, 22:46
putzlappen
 Newbie
Links : Onlinestatus : putzlappen ist offline
Registriert seit: Apr 2005
Ort: NRW
Beiträge: 18
putzlappen ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy Wie Daten nach bestimmten Werten filtern? (Kombiniert)

Hallo Forum,

ich bräuchte mal euren Rat oder einen Denkansatz wie man folgendes realisieren könnte.

Ich habe INI-Dateien, die bei jedem Seitenaufruf in ein einfaches Array eingelesen und sortiert werden.
Diese Daten sollen nach bestimmten (kombinierbaren!) kriterien gefiltert und dann angezeigt werden.

Also zum beispiel so:

Rufe ich index.php ohne Parameter auf, zeigt er alle Dateien an.
Rufe ich sie z.b. so auf: index.php?alphabet=a, zeigt er mir alle mit Alphabet A an.

Bei index.php?alphabet=a&plz=5, zeigt er mir alle mit Alphabet A !UND! PLZ-bereich 5 an.

Die Daten nach denen gefiltert werden soll (Also Name, PLZ, Ort, usw) liegen in den INI-Dateien.
Diese mittels entspr. Funktionen auszulesen und zu filtern ist ja ansich nicht das Problem.

Aber was, wenn ich nach mehreren Sachen kombiniert filtern will wie oben im Beispiel?

Ich habe es so versucht, das geht zwar im Prinzip, führt aber nur zu Chaos:

PHP-Code:
if ($alphabet != "" and $plz == "")  {
    
// prüfe, ob alphabet übereinstimmt und packe dann ins array

} elseif ($alphabet != "" and $plz != "")  {
    
// prüfe, ob alphabet UND PLZ übereinstimmt und packe dann ins array

} elseif ($alphabet == "" and $plz != "")  {
    
// prüfe, ob PLZ übereinstimmt und packe dann ins array

}

...

// hier inhalte des Arrays ausgeben 
Ob jetzt schon beim erstellen des Arrays oder erst beim Auslesen gefiltert wird ist eigentlich egal, die Problematik bleibt die gleiche, da man sich immer in bösen IF-Konstrukten verheddert :-) (ich will ca 10 Werte filtern das wären dann 10x10 if-bedingungen )


Als zweiten versuch habe ich pro Filterkriterium ein Array erstellt...
PHP-Code:
if ($alphabet != "") {
    
// packe ins array $array_alphabet 
}

if (
$plz != "") {
    
// packe ins array $array_plz 
}

$array_anzeigen $array_alphabet $array_plz;

// hier die inhalte von $array_anzeigen ausgeben 
Das funktioniert nicht richtig (Doppeleinträge..) und ist zudem (wie auch das erste) extrem dirty :-)
Gibt es da bessere Lösungen? Mit Datenbankabfrage wäre das wahrscheinlichviel einfacher aber die Daten kommen aus einer Fremdanwendung das kann ich nicht ändern mit dem Format.


Ich hoffe man kann verstehen was ich möchte !! :-)
Vielen Dank schonmal für jegliche Anregung

DANKE lappen
__________________
mfg, lappen

Geändert von putzlappen (19-02-2007 um 22:48 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 19-02-2007, 23:07
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Reicht es nicht, das zu durchsuchende array zu durchlaufen und mit strpos() und/ oder Konsorten die gewünschten Einträge in ein separates array abzulegen?
Im Prinzip bswp. so:
PHP-Code:
$to_be_searched = array('a123''b123''c123''d123''e123');

$letter $_GET['letter']; // ?letter=a
if (!empty($letter))
{
    
$matches = array();
    foreach (
$to_be_searched as $value)
    {
        if (
$value{0} == $letter)
        {
            
$matches[] = $value;
        }
    }

Spontaner Einfall. Ich bin mir sicher, dass es da elegantere Lösungen gibt.
Mit Zitat antworten
  #3 (permalink)  
Alt 20-02-2007, 08:31
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

bau dir einen kleinen filter. Wobei jede bedingung ein prädikat
wird. Dann baust du im filter einen logischen baum auf dessen
knoten die booleschen verknüpfungen darstellen und die blätter
die prädikate. Für jedes element im array durchläufst du den baum
mit jedem wert und wenn du das ende erreichst ohne abgebrochen
zu haben, dann hast du einen gültigen wert den du ins ergebnis
array tun kannst.

greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
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

Kundengewinnung und Kundenbindung
Kundengewinnung und KundenbindungVertrieb läuft doch immer persönlich. Das funktioniert nicht mit dem Internet! Wirklich?

24.09.2021 | Berni

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni


 

Aktuelle PHP Scripte

Simple Forum PHP ansehen Simple Forum PHP

If you need simple forum or discussion on your website, then you've come to the right place. Simple Forum PHP is a script that is very easy to install and administer.

28.08.2021 nevenov | Kategorie: PHP/ Forum PHP Software
Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

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