Simples PHP if script treibt mich zum Wahnsinn

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

  • Simples PHP if script treibt mich zum Wahnsinn

    Hallo Jungs,

    ich kann es mir nicht mehr erklären, denn ich glaub ich komm sonst noch in die Klappse. Ich will nur dass wenn eine Bedingung erfüllt ist das eine passiert und wenn nicht dann das andere. Ich habe schon alles probiert 2xif else if und else es geht nicht. Es wird immer nur der erste Text angezeigt wenn die Bedimgung zutrifft..... Wer kann mir die Erleuchtung bringen??

    Code:
        if ($row["code"]=$_POST["gutnr"])
    		{
    // ....
    		}
        else if ($row["code"]!=$_POST["gutnr"])
    		{
    // ....
    		}
        
    ?>
    Zuletzt geändert von Abraxax; 08.12.2005, 22:04.
    Wissen ist Macht - nichts wissen macht nichts!

  • #2
    lesen & befolgen
    Kissolino.com

    Kommentar


    • #3
      ich habe mir mal erlaubt den code (oder soll ich dreck sagen) auf das nötige minimum zu reduzieren!

      und dein if() ist natürlich immer true. das willst du ja auch. schliesslich funktioniert die variablenzuweisung immer einwandfrei, womit die bedingung für das if() erfüllt ist. wo ist also dein problem?
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Danke für die Änderung des Codes ;-)

        ich lese doch aus der Datenbank mit $row["code"] einen Wert aus sagen wir 10. Dieser Wert muss mit einem im Formular vorgegebenen Wert übereinstimmen. Dazu die erste Bedingung. Wenn $_POST["gutnr"] (Wert aus dem Formular) mit dem aus der Datenbank ausgelesenem Code übereinstimmt tu dies. Nun stimmt der im Formular eigegebene Wert aber nicht überein, sagen wir er ist 9 nicht 10, dann soll aufgrund der != die zweite Bedingung greifen.... sorry für die in euren Augen evtl dumme Frage...
        Wissen ist Macht - nichts wissen macht nichts!

        Kommentar


        • #5


          @danix: guck dir mal GANZ GENAU die IF Bedingung an...fehlt da nicht GLEICH noch was
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            Original geschrieben von Abraxax
            ... und dein if() ist natürlich immer true. das willst du ja auch. schliesslich funktioniert die variablenzuweisung immer einwandfrei, womit die bedingung für das if() erfüllt ist. wo ist also dein problem?
            Der Fehler ist zwar an der Stelle ... hat aber gar nichts damit zu tun ob die Variablenzuweisung funktioniert hat ... oder nicht ... sondern lediglich ob der der Ausdruck rechts der Zuweisung als wahr evaluiert werden kann oder wird. Zusätzlich wird das Ergebnis des Ausdrucks noch der Variablen zugewiesen, dieses beeinflußt aber den Wahrheitswert nicht weiter.

            PHP-Code:
            if ( $var TRUE 
            während
            PHP-Code:
            if ( $var FALSE 
            unwahr wäre ... auch wenn in beiden Fällen die Zuweisung durchaus funktioniert.

            @danix: Schau' Dir doch einfach mal im entsprechend Kapitel des Manuals die Operatoren an und was diese bedeuten! Das spart viele wirklich dumme Fragen.
            Zuletzt geändert von goth; 08.12.2005, 23:02.
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Original geschrieben von goth
              Der Fehler ist zwar an der Stelle ... hat aber gar nichts damit zu tun ob die Variablenzuweisung funktioniert hat ... oder nicht ... sondern lediglich ob der der Ausdruck rechts der Zuweisung als wahr evaluiert werden kann oder wird. Zusätzlich wird das Ergebnis des Ausdrucks noch der Variablen zugewiesen, dieses beeinflußt aber den Wahrheitswert nicht weiter.
              da habe ich wohl noch was reininterpretiert.....
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Hi,

                nun spannt doch den armen Mann nicht so auf die Folter
                Manchmal sieht man halt den Wald vor lauter Bäumen nicht, und sieht einen Fehler einfach nicht, obwohl man die Technik eigentlich beherrscht.

                Um es also auf den Punkt zu bringen:

                Du hast in Deiner If-Abfrage ein Gleichzeichen zu wenig.

                Aus
                PHP-Code:
                $row["code"]=$_POST["gutnr"
                wird
                PHP-Code:
                $row["code"]==$_POST["gutnr"
                und dann geht.
                Schöne Grüße
                Axel

                Kommentar


                • #9
                  Hallo entgegen dem dass alle glauben dass ich zu doof bin besteht das Problem auch damit wie empfohlen:

                  PHP-Code:
                  $row["code"]==$_POST["gutnr"
                  Diese Zuweisung hat immer funktioniert:

                  PHP-Code:
                  $row["code"]=$_POST["gutnr"
                  Was ich nicht verstehe ASCHE AUF MEIN HAUPT ist, warum dann zum Bleistift einen else Klausel nicht greift!

                  Also:


                  PHP-Code:
                   if ($row["code"]==$_POST["gutnr"])
                  {
                  ...
                  }        
                  else
                  {
                  ...

                  Das erste if geht immer aber die else Klausel - also wenn der Datenbankwert nich tdem Post Wert entspricht.

                  Sorry aber ich verstehs nicht
                  Wissen ist Macht - nichts wissen macht nichts!

                  Kommentar


                  • #10
                    gib mal per echo beide werte aus, also
                    PHP-Code:
                    echo $row["code"].'=='.$_POST["gutnr"]; 
                    Sunshine CMS
                    BannerAdManagement
                    Borlabs - because we make IT easier
                    Formulargenerator [color=red]Neu![/color]
                    Herkunftsstatistik [color=red]Neu![/color]

                    Kommentar


                    • #11
                      Wenn ich dann im Formular den richtigen Wert eintrage steht folgendes da:

                      121113==121113

                      trage ich den falschen Wert ein steht gar nichts da, nicht einmal das = Zeichen.

                      Wissen ist Macht - nichts wissen macht nichts!

                      Kommentar


                      • #12
                        lad mal dein quellcode hoch
                        Sunshine CMS
                        BannerAdManagement
                        Borlabs - because we make IT easier
                        Formulargenerator [color=red]Neu![/color]
                        Herkunftsstatistik [color=red]Neu![/color]

                        Kommentar


                        • #13
                          Der Quellcode des Grauens:

                          PHP-Code:
                          <?
                           mysql_connect("127.0.0.1", "Administrator", "admin") or
                          die("Keine Verbindung möglich");
                          mysql_select_db("shop");

                          $ergebnis = mysql_query("SELECT code,wert FROM gutschein where code=$_POST[gutnr]");
                          while($row = mysql_fetch_array($ergebnis))
                              {
                          echo $row["code"].'=='.$_POST["gutnr"];

                          if ($row["code"]==$_POST["gutnr"])
                                  {
                                  echo "igendwas";
                                  }
                                  else
                                  {
                                  echo "irgendwas anderes";
                                  }
                              
                                  }
                          ?>
                          Gruß und danke
                          danix
                          Wissen ist Macht - nichts wissen macht nichts!

                          Kommentar


                          • #14
                            was erwartest du von deinem code?

                            PHP-Code:
                            <?
                             mysql_connect("127.0.0.1", "Administrator", "admin") or
                            die("Keine Verbindung möglich");
                            mysql_select_db("shop");

                            // Hole Datensatz wo code = deiner $_POST['gutnr'] ist...
                            $ergebnis = mysql_query("SELECT code,wert FROM gutschein where code=$_POST[gutnr]");
                            // wird NUR ausgeführt, wenn zu deiner $_POST['gutnr'] auch ein Eintrag vorhanden ist
                            while($row = mysql_fetch_array($ergebnis))
                                {
                            echo $row["code"].'=='.$_POST["gutnr"];
                            // ist also totaler unsinn, weil ja $row['code'] IMMER deiner $_POST['gutnr']  entspricht.
                            if ($row["code"]==$_POST["gutnr"])
                                    {
                                    echo "igendwas";
                                    }
                                    else
                                    {
                                    echo "irgendwas anderes";
                                    }
                                
                                    }
                            ?>
                            aber damit du doch noch zu deiner if kommst

                            PHP-Code:
                            <?
                            mysql_connect("127.0.0.1", "Administrator", "admin") or
                            die("Keine Verbindung möglich");
                            mysql_select_db("shop");

                            $ergebnis = mysql_query("SELECT code,wert FROM gutschein where code='".$_POST['gutnr']."'");

                            if (mysql_num_rows($ergebnis) >= 1)
                            {
                                    while($row = mysql_fetch_array($ergebnis))
                                    {
                                            echo "igendwas";
                                    }
                            }
                            else
                            {
                                    echo "irgendwas anderes";
                            }
                            ?>
                            EDIT:
                            sql query nochmal überarbeitet
                            Zuletzt geändert von Benny-one; 09.12.2005, 21:03.
                            Sunshine CMS
                            BannerAdManagement
                            Borlabs - because we make IT easier
                            Formulargenerator [color=red]Neu![/color]
                            Herkunftsstatistik [color=red]Neu![/color]

                            Kommentar


                            • #15
                              ach her je wie peinlich , jetzt fällts mir wie schuppen von den Augen

                              na ja wie bereits oben erwähnt, manchmal sieht man den Wald vor lauter Bäumen nicht mehr. Ich sollt mir mal wieder ne Auszeit (Urlaub) nehmen

                              Dank dir

                              Gruß
                              danix
                              Wissen ist Macht - nichts wissen macht nichts!

                              Kommentar

                              Lädt...
                              X