Ankündigung

Einklappen
Keine Ankündigung bisher.

Numerologischer Quersummenrechner

Einklappen

Neue Werbung 2019

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

  • Numerologischer Quersummenrechner

    Hallo Community

    Ich habe mich seit 3 Tagen auseinandergesetzt mit PHP. Ich versuche mich jetzt an einem Namensrechner für Numerologie und komme nicht wirklich weiter.
    Es sollte alles auf einer und selben Seite geschehen. Nur, wenn ich den Namen berechne, dann leitet mich das Script auf eine andere Seite.
    Des weiteren, sollte es eine 1 stellige Quersumme haben mit der Ausnahme von 11, 22 und 33. Also wenn die Quersumme 27 ergibt, dann sollte 9 stehen. Sollte die Quersumme 11, 22 oder 33 ergeben, so sollte auch 11, 22 und 33 stehen. Bei allen anderen zweistelligen Quersummen sollte es eine einzelne Ziffer ausgeben.

    Würde mich über jegliche Hilfe Freuen, sei es auch nur ein Tut, dass mir hilft mein Problem zu lösen.

    PS. könntet ihr mir ein Buch oder ein YouTube Channel empfehlen, womit ich mich mit PHP besser auseinander setzen kann?

    PHP-Code:
    <?php
    error_reporting
    (0);

    if(
    $_POST)

    {
    // create an array based on chaldean numerology

    $ar = array(
    'A' => 1,
    'B' => 2,
    'C' => 3,
    'D' => 4,
    'E' => 5,
    'F' => 6,
    'G' => 7,
    'H' => 8,
    'I' => 9,
    'J' => 1,
    'K' => 2,
    'L' => 3,
    'M' => 4,
    'N' => 5,
    'O' => 6,
    'P' => 7,
    'Q' => 8,
    'R' => 9,
    'S' => 1,
    'T' => 2,
    'U' => 3,
    'V' => 4,
    'W' => 5,
    'X' => 6,
    'Y' => 7,
    'Z' => );

    //get the value entered by post method
    $str $_POST['str'];
    //make it upper case. to avoid messing with small letters.
    $str strtoupper($str);
    //find the length of the string entered
    $len strlen($str);

    //set a temp value to calculate
    while ($z 9)
    $sum 0;

    //now loop through the string one by one and add the values
    for($i=0$i<$len$i++)


    {
    $alpha=$str[$i];
    $sum=$ar[$alpha] + $sum;}


    //print the result
    print"NUMEROLOGY TOTAL IS: "$sum;
    }
    ?>

  • #2
    tja ... du brauchst also eine Abfrage, ob die Quersumme durch 11 teilbar ist (ohne Rest) ... und wenn nicht musst du erneut die Quersumme bilden

    ich würde ja vorschlagen, dass du die eigentliche Quersumme in einer Funktion ausrechnen lässt ...

    Oh und bitte den Code das nächste mal in Code-Tags [ PHP ] ...

    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

    Kommentar


    • #3
      Zitat von Noel93 Beitrag anzeigen
      PS. könntet ihr mir ein Buch oder ein YouTube Channel empfehlen, womit ich mich mit PHP besser auseinander setzen kann?
      http://php.net/manual/de/index.php
      mehr braucht man eigentlich nicht.

      Kommentar


      • #4
        PHP-Code:
        <?php


        function quersumme($zahl$new TRUE)
        {

        $zahl str_split($zahl);
        print_r($zahl);
        $result 0;

          foreach(
        $zahl as $key => $value)
          {
            if(
        $new// Für den Fall das die Buchstaben noch in Zahlen umgerechnet werden müssen
            
        {
            
        $result = ((base_convert($value,36,10)-9)%== 0) ? $result $result +((base_convert($value,36,10)-9)%9);  // Die Umrechnung erfolgt von Basis 36 (10 Ziffern + 26 Buchstaben) auf Basis 10 (10 Ziffern)
            
        }
            else 
        // Wenn Bereits in Zahlen umgerechnet wurde
            
        {
            
        $result $result $value;
            }
          }
         

            if(
        $result AND $result != 11 AND $result != 22 AND $result != 33)
            {
            
        $result quersumme($resultFALSE); // Rekursiver Aufruf für den Fall das die Quersumme noch über 9 liegt und kein Sonderfall vorliegt.
            
        }
          

        return 
        $result;
        }


        $ausgangswert "Alexander";

        echo 
        quersumme($ausgangswert);
        // Bei einer echten Ausgabe müsstest du ggf. noch den Kontextwechsel beachten
        Sowas in die Richtung, das ganze ist allerdings noch nicht ausgiebig getestet. Mit Sonderzeichen würde das ganze aber vermutlich nicht mehr zu den richtigen Ergebnissen führen, die übergebenen Werte sollten also zusätzlich noch auf den korrekten Inhalt geprüft werden.

        Kommentar


        • #5
          Danke herzlichst für eure rasche Antwort und Hilfe.

          @TessaKavanagh
          Die Eingabe erfolgt nur in Text.
          Der Zahlenschlüssel (1-9) ist vorgegeben
          Aber ich danke dir viel mal. Ich werde das mal durch studieren.

          Kommentar


          • #6
            Hi,

            habe lt. dieser Website http://numerologie.in/zuordnung-zahlen-numerologie/ das Array um ein paar Sonderzeichen erweitert . . .

            Code:
            $ar = array(
            'a' => 1,
            'b' => 2,
            . . .
            
            . . .
            
            /*
            * Zahlenwerte für Sonderzeichen
            */
            'ä' => 6,
            'ö' => 2,
            'ü' => 8,
            'ß' => 2);
            . . . so dass es egal ist, ob man z.B. ä oder ae eingibt, oder ss anstatt ß .

            Im Script wird so die Namenszahl aus Vorname, Nachname, Geburtsdatum ermittelt.

            PHP-Code:
            <?php
            $ar 
            = array(
            'a' => 1,
            'b' => 2,
            'c' => 3,
            'd' => 4,
            'e' => 5,
            'f' => 6,
            'g' => 7,
            'h' => 8,
            'i' => 9,
            'j' => 1,
            'k' => 2,
            'l' => 3,
            'm' => 4,
            'n' => 5,
            'o' => 6,
            'p' => 7,
            'q' => 8,
            'r' => 9,
            's' => 1,
            't' => 2,
            'u' => 3,
            'v' => 4,
            'w' => 5,
            'x' => 6,
            'y' => 7,
            'z' => 8,
            /*
            * Zahlenwerte für Sonderzeichen
            */
            'ä' => 6,
            'ö' => 2,
            'ü' => 8,
            'ß' => 2);

            /*
            * Die Buchstabenkette des Namens nach obigen Schlüsseln
            * in Zahlenkette umwandeln
            */
            function name_zu_zahl($name$ar){
             
            $name strtolower($name);
             
            $n='';
             for(
            $i=0;$i<strlen($name);$i++){
              
            $n.= $ar[$name[$i]];
             }
             return 
            $n;
            }

            /*
            * Quersumme bilden
            */
            function quer_summe($n){
             
            /*
             * Wenn $n > 9, Quersumme bilden
             */
             
            if($n 9){
              
            $m strval($n);
              
            $n 0;
             for(
            $i=0;$i<strlen($m);$i++){
              
            $n += $m[$i];
             }
             
            /*
             * Wenn Quersumme geteilt durch 11 ohne Rest ist, Funktion beenden
             * und Quersumme zurückgeben
             */
             
            if($n 11 == 0) return $n;
             
            /*
             * Ansonsten Funktionsaufruf mit Quersumme
             */
              
            return quer_summe($n);
             }else{
                 
            /*
                * Wenn Quersumme geteilt durch 11 ohne Rest ist und
                * Quersumme <=9, Funktion beenden und Quersumme zurückgeben
                */
                 
            return $n;
               }
            }
            ?>
            <!DOCTYPE HTML>
            <html>
            <head>
            <title>Numerologie</title>
            <script type="text/javascript">
            <!--
            function auswahl(auswahl){
             var el = auswahl;
             el.select();
             el.focus();
            }
            // -->
            </script>
            </head>
            <body>
            <h3>Namenszahl berechnen</h3>
            <form action="" method="post" name="frm_numerologie">
            <h4>Name</h4>
            <p><label for="vorname">Vorname </label><input type="text" name="vorname" id="vorname"></p>
            <p><label for="nachname">Nachname </label><input type="text" name="nachname" id="nachname"></p>
            <h4>Geburtsdatum</h4>
            <p><label for="tag">Tag </label><input type="text" name="tag" id="tag"></p>
            <p><label for="monat">Monat </label><input type="text" name="monat" id="monat"></p>
            <p><label for="jahr">Jahr </label><input type="text" name="jahr" id="jahr"></p>
            <p><input type="submit" value="Berechnen" name="cmd"></p>
            </form>
            <?php
            if(isset($_POST['cmd'])){
             
            $geb_datum $_POST['tag'].$_POST['monat'].$_POST['jahr'];
             
            $name $_POST['vorname'].$_POST['nachname'];
             
            $name name_zu_zahl($name$ar);
             
            $quersumme_geb_datum quer_summe($geb_datum);
             
            $quersumme_name quer_summe($name);
             
            $namenszahl $quersumme_name.$quersumme_geb_datum;
             
            $namenszahl quer_summe($namenszahl);
             echo 
            "Ihre Namenszahl lautet: ".$namenszahl;
            }
            ?>
            </body>
            </html>
            Gruß
            Günni

            Kommentar

            Lädt...
            X