Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Oderverkn�pfung

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Oderverkn�pfung

    Hallo Gemeinde,

    ich sitz hier an nem Problem und komm einfach nicht weiter.
    Ich brauche f�r das Rechtesystem eines CMS eine OR - Verkn�pfung.
    Ja, alles ganz simple dachte ich $erg = $a | $b und fertig. Denkste.

    Jetzt kommt bei $a = 616 | $b = 1140 als $erg = 7160 raus. ... Richtig w�re 1160.

    Hat wer ne Idee warum das nicht richtig berechnet wird?

  • #2
    Meiner Meinung nach müsste 1660 rauskommen...

    Kommentar


    • #3
      sorry, natürlich soll da 1660 raus kommen...

      Kommentar


      • #4
        PHP-Code:
        <?php
        $erg 
        $a 616 $b 1140;
          echo 
        $erg;
        ?>
        kommt bei mir 1660 raus ?!???

        Kommentar


        • #5
          jap, bei mir auch. aber nur wenn ich den vaiablen die werte per hand zuweise.
          in meinem fall kommen die werte über ein form welches die daten wiederum aus der db hat.
          dann kommt 7160 raus.
          ich hab auch schon versucht über settype($a,"integer") die variablen auf int zu zwingen, hat aber auch nix gebracht.

          Kommentar


          • #6
            na und was steht dann in deinen Variablen ???

            dann müssen ja falsche Werte aus der DB kommen ... lass sie dir halt mal ausgeben.



            $_GET['wert'] oder $_POST['wert']

            Kommentar


            • #7
              hab grad festgestellt das die daten in der db als varchar abgelegt wurden. ha bich jetzt auf int geändert. brachte aber auch nix.

              $a = $_POST[status][0];
              $b = $_POST[status][1];

              macht für $a = 616 und für $b = 1140

              $erg = $a | $b macht für $erg 7160

              Kommentar


              • #8
                Hi.

                Das sollte aber ein Typenproblem sein. Externe Vars sind ja immer Strings. Und eine
                Oder-Verknüpfung der Zeichenketten ergibt genau dein "falsches" Ergebnis.

                Was sagt denn folgendes:
                PHP-Code:
                <?php
                echo (int) $_POST['status'][0] | (int) $_POST['status'][1];
                ?>
                Basti

                Kommentar


                • #9
                  jetzt gehts....
                  danke.

                  aber warum hat settype($a,"integer") nix gebracht?

                  Kommentar


                  • #10
                    Das klappt bei mir auch prima:

                    PHP-Code:
                    <?php
                    $a 
                    '616';
                    $b '1140';

                    settype($a'int');
                    settype($b'int');

                    echo 
                    $a $b// 1660
                    ?>
                    Allerdings bin ich in dem Punkt schreibfaul...

                    Basti

                    Kommentar


                    • #11
                      hmmm,
                      hatte ich wohl nen syntax-fehler reingebaut.

                      Also herzlichen Dank nochmal.

                      Kommentar


                      • #12
                        hmmh, nur so ne verständnisfrage:

                        wieso kommt bei 616 ODER 1140 1660 raus??
                        (ich hasse mathe)

                        Kommentar


                        • #13
                          Zitat von philneu
                          hmmh, nur so ne verständnisfrage:

                          wieso kommt bei 616 ODER 1140 1660 raus??
                          http://de.wikipedia.org/wiki/Oder-Gatter

                          Code:
                           1001101000 <= 616 in Binärform
                          10110100000 <= 1140 in Binärform
                          -----------
                          11111101000 <= 1660 in Binärform

                          Kommentar


                          • #14
                            vielen dank!!

                            wieder ein bisschen klüger (jetzt errinnere ich mich doch ans überfliegen des Manuals... "bitweise addieren" hab ich damals nur registriert...)

                            Kommentar

                            Lädt...
                            X