Mehrere Select-Auswahllisten auswerten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ducks
    antwortet
    lol...das mit den arrays krieg ich nicht hin...aber mit nur 45 Zeilen Code gehts jetzt...

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Aber das grösste Problem löst ja auch deine Lösung wohl nicht: Ich kann schon 6x ne If -Abfrage machen...aber falls Überall "ALL" gewählt ist, brauche ich gar kein WHERE...und kriege dann trotzdem ne Fehlermeldung
    doch.

    denn wenn 6 mal die if-bedingung nicht zutrifft, dann weiß ich, dass ich kein where brauche. Hab doch gesagt, dass ich nicht alles in den...

    es gibt natürlich ne ganz schöne sache, nennt sich arrays. da speicherst du alle bedinungen rein
    if(bla)
    $where[] = bedingung;

    if(count(where) > 0)
    // where wird benötigt.
    $sql.= $where;
    Zuletzt geändert von TobiaZ; 22.07.2006, 19:12.

    Einen Kommentar schreiben:


  • Ducks
    antwortet
    Original geschrieben von TobiaZ
    OffTopic:
    du hast nicht wirklich geglaubt, dass ich euch alles in den allerwertesten schiebe?
    Touché

    Aber das grösste Problem löst ja auch deine Lösung wohl nicht: Ich kann schon 6x ne If -Abfrage machen...aber falls Überall "ALL" gewählt ist, brauche ich gar kein WHERE...und kriege dann trotzdem ne Fehlermeldung

    Ich muss also rausfinden, ob ich überhaupt ein WHERE brauche, wo ich es einsetzen muss (muss ja in ner IF-Abfrage sein) und wo ich ein dann noch AND einsetzen muss...soviel Aufwand für so wenig Nutzen. Das muss doch irgendwie einfacher gehen...naja...schaun mer mal, was wir noch so in der PHP/MySQL Wundertüte finden.
    Zuletzt geändert von Ducks; 22.07.2006, 18:35.

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Jo, dann informier dich bitte über pseudocode...
    OffTopic:
    du hast nicht wirklich geglaubt, dass ich euch alles in den allerwertesten schiebe?

    Einen Kommentar schreiben:


  • Ducks
    antwortet
    Ich hab das so angepasst, erhalte aber folgende Meldung:
    Parse error: parse error, unexpected '='
    in dieser Zeile:
    PHP-Code:
    $where.= AND eintrag1 bla
    Zudem: Muss das AND da drin sein? Hätte ich dann nicht den Befehl WHERE AND eintrag1=bla?

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    if(eintrag1 != all)
    $where.= AND eintrag1 = bla;

    und das ganze dann 6 mal, oder in einer schleife.

    Einen Kommentar schreiben:


  • Ducks
    antwortet
    Mhhh...hab die Regeln gelesen, (inkl. Code-Tags). Und ich habe vorher ziemlich lange nachgedacht, hatte einfach nen Geistesblitz

    Nun steh ich aber richtig auf dem Schlauch. Ich möchte 6x
    PHP-Code:
    WHERE 
    Abfragen benutzen, da ich 6 Listen habe. Da aber bei jeder Auswahlliste auch "all" gewählt werden kann, müsste ich die WHERE dynamisch einfügen lassen können.

    Z.B. wenn ein Benutzer bei 5 Auswahllisten "all" wählt und bei einer ne bestimmte Kategorie...dann müsste ich ja nur 1x WHERE setzen. Geht das dynamisch? Respektive, ich denke mir das es dynamische gehen muss! Aber wie? Muss ich alle Eingaben mit Schlaufen oder IF abfangen?

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Jo, und bevor ich mir den letzten Beitrag jetzt duchlese, denkste da jetzt auch erstmal was länger nach und liest zur Abwechslung mal unsere Regeln (z.B. bezgl. PHP-Tags und anderer nützlicher Tipps)

    Einen Kommentar schreiben:


  • Ducks
    antwortet
    Hab den Fehler selbst entdeckt...und gleich nen neuen gefunden

    1. fehler:

    PHP-Code:
    $Brand=mysql_result($result,"Brand");
    $Name=mysql_result($result,"Name");
    $Sub_Brand=mysql_result($result,"Sub-Brand");
    $Year=mysql_result($result,"Year");
    $Team=mysql_result($result,"Team");
    $Color=mysql_result($result,"Color"); 
    musste weg, danach funktionierts...

    2. Neues Problem: Falls ich nun nur einen Wert vorgeben möchte...z.B. nur den Namen. Wie mache ich, dass dies automatisch erkannt wird. Muss ich ne leere Zeile in die DB schreiben, so dass ich nen leeren Suchwert erkennen kann und diesen dann abfangen?
    Zuletzt geändert von Ducks; 22.07.2006, 17:12.

    Einen Kommentar schreiben:


  • Ducks
    antwortet
    Klar, sorry...ich bin jetzt auch schon ein Stück weiter...

    $auswahl_name=$_GET['name'];
    $auswahl_brand=$_GET['brand'];

    echo("$name");

    $username="***";
    $password="***";
    $database="***";

    mysql_connect(localhost,$username,$password);
    @mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM autogramme_tradelist WHERE Name='$auswahl_name' AND Brand='$auswahl_brand'";
    $result=mysql_query($query);

    // $num=mysql_numrows($result);

    mysql_close();

    $Brand=mysql_result($result,"Brand");
    $Name=mysql_result($result,"Name");
    $Sub_Brand=mysql_result($result,"Sub-Brand");
    $Year=mysql_result($result,"Year");
    $Team=mysql_result($result,"Team");
    $Color=mysql_result($result,"Color");

    echo("<table border=0 cellspacing=0 cellpadding=2 width=500>\n");


    // Tabellenüberschrift generieren
    echo("<TR>\n" .
    "<TD> Player</TD>\n" .
    "<TD> Brand</TD>\n" .
    "<TD> Sub-Brand</TD>\n" .
    "<TD> Year</TD>\n" .
    "<TD> Team</TD>\n" .
    "<TD> Color</TD>\n" .
    "</TR>\n");


    while ( $row = mysql_fetch_array($result)) {
    echo("<TR>\n" .
    "<TD>" . $row["Name"] . "</TD>\n" .
    "<TD>" . $row["Brand"] . "</TD>\n" .
    "<TD>" . $row["Sub_Brand"] . "</TD>\n" .
    "<TD>" . $row["Year"] . "</TD>\n" .
    "<TD>" . $row["Team"] . "</TD>\n" .
    "<TD>" . $row["Color"] . "</TD>\n" .
    "</TR>\n");
    }
    echo("</TABLE>\n");


    ?>
    Nun funktioniert die Abfrage...aber wenn ich nun 2 Einträge hätte, die angezeigt werden müssten, erscheint nur einer...wenns einer wäre, erscheint keiner

    z.B.
    Sollte einen Eintrag anzeigen

    Sollte zwei Einträge anzeigen
    Zuletzt geändert von Ducks; 22.07.2006, 17:02.

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Kannst du dein Problem ein bischen konkretisieren?

    Generell:

    auf der anzeigeseite machst du ein SELECT auf die Tabelle mit der entsprechenden Bedingung, die hast du gerade genannt (WHERE x = ... und y = ...) das wars schon.

    Einen Kommentar schreiben:


  • Ducks
    hat ein Thema erstellt Mehrere Select-Auswahllisten auswerten.

    Mehrere Select-Auswahllisten auswerten

    Hallo Zusammen

    Ich bin ein PHP-Newbie, hab mir aber dank google schon ein paar Sachen selber lernen können...

    Zu meinem Problem: Ich habe ne DB mit 2 Spalten: Name & Brand (Marke, bin ja kein Pyromane...)

    Nun lese ich die Einträge in 2 Select-Auswahllisten und lösche doppelte Einträge.

    http://www.duckszone.com/joomla/mosa..._advanced2.php

    Ich werde noch eine leere Zeile hinzufügen, damit der User auch gar keine Auswahl treffen kann.

    Nun möchte ich, dass der Benutzer seine Auswahl trifft, und ich nun aus der DB nur die Zeilen auslese, welche beiden (wenn nur eine Auswahl getroffen wird, natürlich nur eine) ausgewählten Listenwerten entspricht.

    Nur...wie mach ich das? Muss ich das an ne neue PHP-Seite übergeben?
Lädt...
X