Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablen werden nicht weiter übernommen

Einklappen

Neue Werbung 2019

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

  • Variablen werden nicht weiter übernommen

    Hallo Leute,

    ihr habt mir bisher immer super weiterhelfen können.

    und zwar haben ich folgendes PHP-Script aufgebaut:
    PHP-Code:
    <?php
            
    if ($_POST[AUSWAHL])
            {
            
    $conn oci_connect ("proj_21_hb14""?????????""student");

                    
    $sql_string "SELECT LS_NR, LB_BETRIEBSSTUNDEN, LB_KILOMETER, LB_AKT_STANDORT, LB_UNTERSUCHUNGSTERMIN from VL_LOKBETRIEB
                                  WHERE LS_NR = 
    $_POST[AUSWAHL]";
                    
    $stmnt oci_parse ($conn$sql_string);
                    
    oci_execute($stmnt);
                    
    $i=0;
                    while (
    $row oci_fetch_array ($stmntOCI_BOTH))
                    {
                      
                        
    $altNR $row[0];
                        
    $altEN $row[1];
                        
    $altER $row[2];
                        
    $altRT $row[3];
                        
    $altIN $row[4];
                       
                       
    $i+=1;
                                       }
                    if (
    $i==0)
                    {
                       echo 
    "Es ist kein Datensatz nach Ihren Kriterien vorhanden";
                    }
                    else
                    {
                       echo 
    "LS_NR: <b>$_POST[AUSWAHL]</b><p>";
                       echo 
    " Ihre Ausgewählte Lokomotive wurde das letzte mal am $altIN mit $altEN Betriebsstunden aktualisiert.";
                    }                                        
    // die hier drüber stehende Variablen werden benötigt 
            
    }
             
            

    echo 
    "<form method='post'>";
    echo 
    "<br>";

    echo 
    "<input name='neuBE' type='text' size=22 maxlength=30>";
    echo 
    ": Geben Sie hier die aktuellen Briebsstunden der Lokomotive an.";
        
    echo 
    "<br>";
    echo 
    "<input type = 'submit' name='Senden'>" ;
    echo 
    "</body>";
    echo 
    "<br>";

    echo 
    $altIN$altEN"// Hier werden die Variablen ausgegeben 

        
    if ($_POST[Senden]) 
    {    
    echo 
    $altIN$altEN"// Hier benötige ich die Variablen, doch sie werden nicht ausgegeben 
                       
    if ( $altBE $_POST['neuBE'] ) {

    echo 
    "Der von Ihnen eingegebene Wert ist OK.";

    $Datum1 $altUN;
                            
    $datetime1 date_create($Datum1); 
    $datetime2 date_create($Datum2);
    $interval date_diff($datetime1$datetime2);
    //echo $interval->format('%R%a days'); 

    echo "<br>";
    echo 
    "<br>";
    $Tage $interval->format('%R%a days'); 

    echo 
    "$Tage";
    Ich lass mir durch die " echo " Ihre Ausgewählte Lokomotive wurde das letzte mal am $altIN mit $altEN Betriebsstunden aktualisiert."; " die zwei Werte anzeigen, nun sollen die zwei Werte auch in die nächste if ($_POST[Senden]) mit übernommen werden.

    Dies funktioniert leider nicht.
    Habe schon viel ausprobiert, doch leider hat nichts funktioniert, ich hoffe ihr könnt mir weiterhelfen.

  • #2
    Läuft das Programm ab da nicht weiter oder kommt ein Fehler?

    POST[AUSWAHL] (eine Zeile drüber) AUSWAHL muss in "" oder ''

    Kommentar


    • #3
      Das mit dem POST[AUSWAHL] läuft. Zeigt mir auch alle richtigen Variablen $altIN und $altEN an.

      Doch die Variablen $altIN und $altEN sollen auch in den nächsten if-Befehl = if ($_POST[Senden]) aufgerufen werden.
      Dies habe ich auch gemacht mit = echo " $altIN, $altEN";
      Doch dies werden mir dort nicht mehr angezeigt.

      Die Variablen benötige ich für weitere Rechnungen usw..

      Wie bekomme ich die Variablen $altIN und $altEN in die if ($_POST[Senden])??????

      Kommentar


      • #4
        Die Variablen werden in der while Schleife erzeugt und bei jedem Durchlauf mit neuen Werten bestückt. Bei der Abfrage hättest du dann den Wert des letzten Schleifendurchlaufs. Hast du auch schonmal geprüft ob der überhaupt in die If-Abfrage kommt? (Einfach in den If-Block echo "test"; oder so ^^)

        Kommentar


        • #5
          Vorher ist ja noch eine PHP wo ich eine Auswahl treffe, diese will ich hier nur nochmal anzeigen lassen aus meiner Datenbank, also kann ja nur das raus kommen was ich ausgewählt habe.

          Das Problem ist: Das der zwei benötigte Variablen nicht mit in die nächste if schleife nimmt.
          PHP-Code:
          if ($_POST[Senden])  
          {     
          echo 
          $altIN$altEN"
          Der Befehl echo gibt mir nur ein Komma aus wenn ich die PHP durchlaufen lasse.

          Kommentar


          • #6
            Vorher ist ja noch eine PHP wo ich eine Auswahl treffe, diese Auswahl will ich hier nur nochmal anzeigen lassen aus meiner Datenbank, also kann ja nur das raus kommen was ich ausgewählt habe.

            Das Problem ist: Das der zwei benötigte Variablen nicht mit in die nächste if schleife nimmt.
            PHP-Code:
            if ($_POST[Senden])  
            {     
            echo 
            $altIN$altEN"
            Der Befehl echo gibt mir nur ein Komma aus wenn ich die PHP durchlaufen lasse.

            Kommentar


            • #7
              Wenn keine Fehlermeldungen kommen und nur das Komma ausgegeben wird, sind die Variablen leer. Werden sie hier
              Code:
              echo " Ihre Ausgewählte Lokomotive wurde das letzte mal am $altIN mit $altEN Betriebsstunden aktualisiert.";
              korrekt ausgegeben?

              Kommentar


              • #8
                Aber warum???

                wie bekomme ich die Variablen angezeigt??

                Kommentar


                • #9
                  Ja da werden Sie korrekt ausgegeben
                  würde auch gerne ein Bild schicken, weiß nur nicht wie es geht.

                  Kommentar


                  • #10
                    Richtig debuggen

                    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
                    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
                    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
                    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
                    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
                    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
                    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
                    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
                    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
                    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                    Kommentar


                    • #11
                      ich habe leider keine mysql Datenbank sondern von der uni ein Oracle SQL Datenbank.
                      kann ich da mit diesen befehlen arbeiten???

                      Kommentar


                      • #12
                        Entweder ist es gewollt oder fehlende }
                        Wenn auf $_POST['SENDEN'] geklicktwird, ist $_POST['Auswahl'] nicht mehr aktiv
                        Dann durchläuft die Kiste eig garnichts

                        So kann man das wenigstens lesen und ein Paar var_dumps Hinzugefügt.
                        PHP-Code:
                        <?php 
                        error_reporting 
                        (E_ALL);
                        ini_set ("display_errors"TRUE);
                        var_dump ($_POST); //TEST

                        if ($_POST['AUSWAHL']) {
                            
                        $conn oci_connect ("proj_21_hb14""?????????""student"); 
                            
                            
                        $sql_string "
                                SELECT 
                                    LS_NR, 
                                    LB_BETRIEBSSTUNDEN, 
                                    LB_KILOMETER, 
                                    LB_AKT_STANDORT, 
                                    LB_UNTERSUCHUNGSTERMIN 
                                FROM 
                                    VL_LOKBETRIEB 
                                WHERE 
                                    LS_NR = "
                        .$_POST['AUSWAHL']; 
                                    
                            
                        $stmnt oci_parse ($conn$sql_string); 
                            
                        oci_execute($stmnt); 
                            
                        $i=0
                            while (
                        $row oci_fetch_array ($stmntOCI_BOTH)) { 
                            
                        $altNR $row[0]; 
                            
                        $altEN $row[1]; 
                            
                        $altER $row[2]; 
                            
                        $altRT $row[3]; 
                            
                        $altIN $row[4]; 
                            
                            
                        $i++; 
                            }
                            
                            if (isset (
                        $i) and $i==0) {
                            echo 
                        "Es ist kein Datensatz nach Ihren Kriterien vorhanden"
                            }
                            else { 
                            echo 
                        "LS_NR: <b>".$_POST['AUSWAHL']."</b> <p>Ihre Ausgewählte Lokomotive wurde das letzte mal am ".$altIN." mit ".$altEN." Betriebsstunden aktualisiert."
                            }
                            
                            echo 
                        "<form method='post'><br>
                                <input name='neuBE' type='text' size=22 maxlength=30>: 
                                Geben Sie hier die aktuellen Briebsstunden der Lokomotive an.<br>
                                <input type = 'submit' name='Senden'></body><br>
                                 "
                        .$altIN.", ".$altEN// Hier werden die Variablen ausgegeben  
                                 
                                 
                             
                        if ($_POST['Senden']) {
                                 
                        var_dump ($altIN); //TEST
                                 
                        var_dump ($altEN); //TEST
                                 
                        echo $altIN.", ".$altEN// Hier benötige ich die Variablen, doch sie werden nicht ausgegeben  
                                 
                                 
                        if ( $altBE $_POST['neuBE'] ) { 
                                 echo 
                        "Der von Ihnen eingegebene Wert ist OK."
                                 
                        $Datum1 $altUN
                                 
                        $datetime1 date_create($Datum1);  
                                 
                        $datetime2 date_create($Datum2); 
                                 
                        $interval date_diff($datetime1$datetime2); 
                                 
                        //echo $interval->format('%R%a days');  
                                 
                        echo "<br/><br/>"
                                 
                        $Tage $interval->format('%R%a days');  
                                 echo 
                        $Tage;
                                 }
                             }
                        }
                        PS.: Lustigerweise funktioniert es auch ohne '' im Array,
                        aber das macht man doch nicht und so viele echo's Hintereinander hab ich noch nie gesehen

                        Kommentar


                        • #13
                          http://www.php.de/php-tipps-2008/158...der-nicht.html

                          Why is $foo[bar] wrong? ¶

                          Always use quotes around a string literal array index. For example, $foo['bar'] is correct, while $foo[bar] is not. But why? It is common to encounter this kind of syntax in old scripts:

                          PHP-Code:
                          <?php
                          $foo
                          [bar] = 'enemy';
                          echo 
                          $foo[bar];
                          // etc
                          ?>
                          This is wrong, but it works. The reason is that this code has an undefined constant (bar) rather than a string ('bar' - notice the quotes). PHP may in the future define constants which, unfortunately for such code, have the same name. It works because PHP automatically converts a bare string (an unquoted string which does not correspond to any known symbol) into a string which contains the bare string. For instance, if there is no defined constant named bar, then PHP will substitute in the string 'bar' and use that.

                          Kommentar

                          Lädt...
                          X