Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Suchproblem per Select

  1. #1
    Hauer
    Gast

    Standard Suchproblem per Select

    Hallo,

    ich grübel schon die ganze Zeit und habe mal ne Frage bezüglich einen Suchscriptes an dem ich gerade arbeite.

    Ich versuche es mal zu schildern.

    Also ich habe 4 Variablen, die ich per $_Post übergebe um in der Datenbank die Treffen zu finden.

    A, B, C, D
    (Diese werden per Drobdown aus dem Formular ausgewählt, ursprung ist die DB selbst)

    Der Aufbau sieht dann so aus:

    PHP-Code:
    $abfrage "SELECT * FROM objekte where A like '$A' AND B like '$B' AND C like '$C' AND D like '$D' LIMIT $start$eintraege_pro_seite"
    Nun verhält es sich ja so, dass alle Variablen angegeben werden müssen, damit die Bedingung erfüllt ist und ein Ergebnis erscheint.

    Nun möchte ich aber erreichen, dass auch nur 1, oder, 2, oder 3 Variablen abgefragt werden können und mir dennoch ein Ergebniss angezeigt wird.

    Mit OR bringt es mir nix, da er dann bei 2 Variablen nicht mehr das gewünschte Ergebniss anzeigt, da die Variablen ja interdependent bleiben sollen.

    Nun könnte ich ja per Ausschlußverfahren mit if(!empty($B.... alle Möglichkeiten aufheben, doch das lässt das Script doch nur ins uferlose aufblähen.

    Hat jemand für mich mal ein schlanke Lösung parat, komme nicht so recht weiter?

    Dank.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Suchproblem per Select

    Die Dropdowns im Formular deklarierst du als array, mit einem numerischen Key dem du auf der Verarbeitungsseite über ein entsprechendes Array die passenden Spaltennamen zuweist.

    Beispiel:
    HTML-Code:
    [...]
    <form method="post" action="my_search.php">
    <select name="search_values[1]"><!-- options --></select>
    <select name="search_values[2]"><!-- options --></select>
    [...]
    </form>
    Verarbeiten kannst du das dann ganz simpel:
    PHP-Code:

    $mySearchFields 
    = array(
        
    1=>"spalte1",
        
    2=>"spalte2",
        
    3=>"spalte3"
    );
    $mySearchValues = array();
    foreach(
    $_POST['search_values'] as $k=>$v) {
        if(!empty(
    $v) && isset($mySearchFields[$k])) {
            
    $v mysqli_real_escape_string($v);
            
    $mySearchValues[] = "`{$mySearchFields[$k]}` LIKE '{$v}'";
        }
    }
    $sqlWhere count($mySearchValues) ? implode(" OR ",$mySearchValues) : "1";
    $sql "SELECT * FROM objekte WHERE {$sqlWhere} LIMIT {$start}{$eintraege_pro_seite}"
    Wenn jetzt mal Felder hinzukommen oder wegfallen brauchst du nur den Array $mySearchFields und dein Formular entsprechend anpassen. Der Rest läuft automatisch.

    Hier übrigens noch ein Link für dich:
    http://www.php-faq.de/q-sql-select.html
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  3. #3
    Hauer
    Gast

    Standard AW: Suchproblem per Select

    Danke das sieht richtig gut aus ! Leider bekommen ich einen Fehler bei

    PHP-Code:
    $v mysqli_real_escape_string($v); 
    Code:
    Warning:  mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\angebote_suche.php on line 345
    So in etwas habe ich die Funktion des Scripts verstanden, finde aber den Fehler nicht. Welchen Parameter fehlt den da, der MSQL Connect?

    Danke.

  4. #4
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Suchproblem per Select

    Achso, bei mysqli prozedural muss man ja immer noch den Verbindungslink mit übergeben. Ich nutz das nur immer objektorientiert.
    Nutzt du denn mysql, mysqli prozedural oder mysqli objektorientiert?
    Bei mysql ist es mysql_real_escape_string(string $escapestr)
    http://de2.php.net/manual/de/functio...ape-string.php
    Bei mysqli prozedural ist es mysqli_real_escape_string(mysqli $link , string $escapestr)
    Bei mysqli objektorientiert ist es mysqli::real_escape_string(string $escapestr)
    http://php.net/manual/de/mysqli.real-escape-string.php

    Weil du da nachfragst, du kennst die Funktion aber und weißt welchen Zweck die hat? Die schützt vor SQL-Injection und muss unbedingt auf SÄMTLICHE Daten angewendet werden, die vom User kommen und in SQL-Statements benutzt werden. Also z.B. alles aus $_GET, $_POST, $_COOKIE

    Ansonsten, wenn dir etwas an dem Code noch nichtganz klar ist frag gerne nach.
    Es macht ja mehr Sinn wenn du auch verstehst was da passiert.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  5. #5
    Hauer
    Gast

    Standard AW: Suchproblem per Select

    OK, super hab ich völlig übersehen, mit msql funktioniert das Script.

    Nun habe ich es mal getestet und nach 2 Optionen suchen lassen. A und B. Das Problem ist nun immer noch folgendes. Er liefert alle Ergebnisse mit der Option A und alle Ergebnisse mit der Option B.
    Mein Ziel ist aber, dass er bei der Option B -> A mit implementiert. Also hierarisch vorgeht, das Suchergebnis also immer mehr einschränkt mit jeder neuen Variabel.

    Vielleichth habe das in meinem ersten Statement falsch rübergebracht.



  6. #6
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Suchproblem per Select

    Ahja, in dem implode() steht ein " OR ".
    Da gehört natürlich ein " AND " hin.
    Vorletzte Zeile.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  7. #7
    Hauer
    Gast

    Standard AW: Suchproblem per Select

    Ja, hab ich geändert. Ebenso haben offensichtlich die voreingestellten optionen wie --Bitte wählen-- das ergebniss beeinflusst. Sind mit der Variabel $v mitgeschickt worden, so ein blödsinn, lach.

    Ok ich danke dir, so funktioniert es jetzt einwandfrei und ich kann auch Optionen überspringen.

    Jetzt fehlt nur noch die Variabel nach Preis bis... , aber daran werde ich mich jeztzt mal selbst versuchen.

    Danke nochmals vielmals.

    Gruß

    P.S In einem anderen Forum konnte man sich für die Hilfe bedanken und die Helfer haben dort Punkte bekommen. Wäre auch was für hier.
    Geändert von Hauer (09.12.2010 um 22:06 Uhr)

  8. #8
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Suchproblem per Select

    Gerne, wenn noch Fragen auftauchen sollten einfach wieder melden.

    Übrigens, als Tipp wenn du längerfristig mit PHP entwickeln möchtest: Schau dir mal mysqli an, am Besten gleich in der objektorientierten Version.
    mysql_* ist zwar nicht Deprecated, man braucht also keine alten Projekte umschreiben. Aber für neue Projekte ist es schon sinnvoll direkt die aktuelle Variante zu nutzen. Gerade in der oo-Variante bietet das schon nützliche Features, z.B. mit den prepared statements, oder multi_query.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  9. #9
    Pion
    Gast

    Standard AW: Suchproblem per Select

    Warum nutzt man mysqli Objektorientiert wenn es pdo gibt ?

    Nur mal so aus neugierde

  10. #10
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Suchproblem per Select

    Hm, bei mir ist es einfach Gewohnheit. Gegenfrage, welchen Vorteil bietet PDO wenn man sicher ist, dass das Projekt nicht mit anderen DBs als MySQL laufen muss? ^^
    Ich habe kürzlich auch einen umfassenden Vergleich von mysql_*, mysqli_* und pdo gelesen, bei dem mysqli im gesamten am Besten abgeschnitten hat (Performance-Fragen). Das hing damit zusammen, dass mysqli_* eben auf ein DBMS (mysql) beschränkt und optimiert ist. Ich schau mal ob ich den Bericht nochmal finde.
    Ich wollte mir aber für mein nächstes anstehendes Projekt mal Doctrine2 anschauen, das basiert auch auf PDO, und ich habe davon bisher nur Lob in den höchsten Tönen gehört.
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

Ähnliche Themen

  1. Select TOP X
    Von Unregistriert im Forum Datenbank Forum - MySQL und andere Datenbanksoftware
    Antworten: 5
    Letzter Beitrag: 14.06.2009, 18:38
  2. JavaScript: select-box onchange: neue select-box
    Von Jan_K im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 20.08.2008, 16:43
  3. problem mit Pulldown-Menü (<select></select>)
    Von magicgerd im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 23.01.2006, 18:38
  4. select
    Von HTML Looser im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 04.08.2005, 17:09
  5. select
    Von icke im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 11.05.2004, 15:52

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •