korrekte if-schleife [option-value Werte]

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

  • korrekte if-schleife [option-value Werte]

    Hallo zusammen,
    bin grade auf diese seite gestoßen und
    gleich mal ne frage:

    Ich arbeite gerade an einer database wo der user
    spezielle auswahlmöglichkeiten hat.
    Er kann bei zwei dropdown-menu verschiedene
    dinge auswählen und bei bestimmten möglichkeiten
    soll er ne fehlermeldung ausgeben.

    Auswahlmöglichkeit sieht z.B. so aus:
    <option value="None" style="background-color : #DDB117">None</option>



    Hier die if schleife um mögliche Kombination zu filtern


    PHP-Code:

    else {if 


    ( (
    $prof1 ==  ('Paladin')  )

    && 

    (
    $prof2 != ('Treasurehunter') or $prof2 !=  ('Plainswalker') or 
    $prof2 !=  ('Abysswalker') or $prof2 !=  ('Silverranger') or
     
    $prof2 !=  ('Phantomranger') or $prof2 !=  ('Hawkeye'
    or 
    $prof2 !=  ('Spellsinger') or $prof2 !=  ('Sorc') or $prof2 !=  ('Spellhowler') or $prof2 !=  ('Necromancer')
    or 
    $prof2 !=  ('Elvenelder') or $prof2 !=  ('Shillienelder') or 
    $prof2 !=  ('Bishop') ... (abgekürzt) )


    message_die(GENERAL_ERROR"Subclass choice not possible."); }


    Ohne Klammern oder auf anderem
    wege mit (prof2 = xx or prof2 = xx..)
    wird die fehlermeldung immer noch bei bestimmten
    kombinationen ausgegeben (die eigentlich möglich
    sein sollen)

    Nun gibt er bei bestimmten Möglichkeiten immer
    die fehlermeldung aus, was ich überhaupt nicht
    verstehen kann.

    Wie kann ich also nun den inhalt von prof2
    korrekt überprüfen lassen?


    Schonmal vielen dank!


    Edit: Um das nochmal zu verdeutlichen, wenn die
    erste Wahl des ersten dropdown menu
    z.b. den wert "6" hat dann soll wert 2 oder 3
    vom zweitem dropdown menu nicht wählbar sein,
    alles andere soll möglich sein.
    Bei der if schleife oben ist das halt grad umgedreht,
    dass ich die fehlermeldung ausgebe wenn es nicht den angegebenen werten entspricht.
    Zuletzt geändert von warefare; 16.12.2006, 15:37.

  • #2
    1. es gibt keine if schleife,
    2. bitte code umbrechen, so wie es in underen regeln steht.
    3. "klappt nicht" ist keine problembeschreibung und
    4. der hinweis das unter bestimmten umständen eine fehlermeldung kommt, hilft uns auch kein stück weiter.

    am besten baust du die bedingung mal stück für stück auf, dann siehst du am besten, an welcher stelle du einen fehler produzierst.

    Kommentar


    • #3
      Hi,

      zunächst mal gibt es keine if-schleifen.
      Insgesamt sieht dieses konstrukt recht unschön aus.
      Das lässt sich sicher besser mit schleifen oder wenns viele
      solcher bedingungen sind mit einem filterframework machen.

      greets
      (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

      Kommentar


      • #4
        Original geschrieben von closure
        Hi,

        zunächst mal gibt es keine if-schleifen.
        Insgesamt sieht dieses konstrukt recht unschön aus.
        Das lässt sich sicher besser mit schleifen oder wenns viele
        solcher bedingungen sind mit einem filterframework machen.

        greets
        ok stimmt aber das optische kommt bei mir später,
        ich wüsste aber auch nicht wie ich das verkürzen kann
        und die prof2 werte zusammenfasse.

        Und selbst wenn ich das mit ner while schleife probier
        ist es vom prinzip her das gleiche und funktioniert auch nicht,

        Kommentar


        • #5
          Das lässt sich sicher besser mit schleifen oder wenns viele
          solcher bedingungen sind mit einem filterframework machen.
          oder

          PHP-Code:
          in_array(hey,profil2

          Kommentar


          • #6
            Original geschrieben von TobiaZ
            oder

            PHP-Code:
            in_array(hey,profil2
            oki das werd ich gleich mal ausprobieren

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              oder

              PHP-Code:
              in_array(hey,profil2
              Ja im einfachsten fall so. Aber ich bin davon ausgegangen
              dass sich die überprüfungen und deren boolsche verknüpfungen
              unterscheiden.

              Wenn es wirklich immer nur um ungleichheit die or-verknüpft ist
              dann auf jedenfall sowas.

              greets
              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

              Kommentar


              • #8
                PHP-Code:
                else 
                {if 

                ((
                $prof1 ==  ('Paladin') ) and 

                $prof2 != in_arrayInhalt ) )


                message_die(GENERAL_ERROR"Subclass choice not possible."); }
                }


                PHP-Code:

                if (in_arrayInhalt ) and $prof2 'Paladin'

                {
                message_die(GENERAL_ERROR"Subclass choice not possible."); }


                Wie sieht die konstruktion mit nem array aus ?
                Zuletzt geändert von warefare; 16.12.2006, 15:58.

                Kommentar


                • #9

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    tu ich doch D:

                    aber dann erklär mir mal bitte wie ich überprüfe
                    ob prof2 im array ist oder nicht; ich habs jetzt
                    so versucht

                    PHP-Code:
                    $klassen = array("Inhalt");


                    if ( (
                    $prof1 = (' x ' ) )  && ($prof2 != in_array($klassen) ) ) 

                    {
                    message_die(GENERAL_ERROR"Subclass choice not possible."); }


                    Kommentar


                    • #11
                      du willst mir sagen, dass du das manual gelesen hast und dabei nicht erkannt hast, dass die funktion in_array() zwei parameter benötigt?

                      Ich sagte doch, bitte keinen Mammutthhread...

                      Kommentar

                      Lädt...
                      X