Daten aus DB in $_SESSION-variable übergeben aber editierung nicht möglich ?

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

  • Daten aus DB in $_SESSION-variable übergeben aber editierung nicht möglich ?

    PHP-Code:
    <?PHP 
            $report_ID
    =$_GET['report_ID'];

            
    $abfrage "SELECT * from report WHERE ReportID LIKE '$report_ID' LIMIT 1";
            
    $ergebnis mysql_query($abfrage);
            
    $row mysql_fetch_object($ergebnis);
            
    //einholen der Daten zum editieren aus DB
            
    $_SESSION['reportID']=$row->ReportID;
            
    $_SESSION['datum']=$row->Datum;
            
    $_SESSION['projektname']=$row->Projektname;
            
    $_SESSION['projektbeginn']=$row->Projektbeginn;
            
    $_SESSION['projektende']=$row->Projektende;
            
    $_SESSION['report']=$row->Reporttxt;
            
    $_SESSION['pause']=$row->Pause;
            
    $_SESSION['fahrzeit1']=$row->Fahrzeit1;
            
    $_SESSION['fahrzeit2']=$row->Fahrzeit2;
            
    $_SESSION['n_rechenbarezeit']=$row->N_rechenbar;
            
    ?>
        



    <form action="<?PHP echo $script?>" method="post">
        
            <!--<div id="stundentable" >-->
            <!-- <table width="600" border="0" align="center"> 
    -->
            <table width="600" align="center" border="0" 
    cellpadding="5" cellspacing="5">
                <tr>
                    <td height="2"></td>
                </tr>
                <!--</table>-->
                <!-- Formular Anfang -->
                <!-- <table width="600" align="center" border="0" cellpadding="5" cellspacing="5">-->
                <tr>
                    <td colspan="2"><?PHP echo
     
    $errorMessage;?></td>
                </tr>
                <tr>
                    <td align="center" 
    colspan="4"><hr/></td>
                </tr>
                <tr>
                    <td align="center"
     colspan="4">Stundenzettel mit ID: <?php echo $_SESSION['reportID'];?>
     kann nun editiert werden.</td>
                </tr>
                <tr>
                    <th align="left">
    <?PHP echo $errorPicture['datum']; ?>
    f&uuml;r Datum: (DD.MM.YYYY)*</th>
                    
    <!--<?PHP// echo $errorPicture['datum']; ?>-->

                    <td><input class="<?PHP echo $errorClass['datum']?>"id="datum" name="datum" value="
    <?PHP echo $_POST['datum']=$_SESSION['datum']; ?>"/></td>
                    <th align="left"><?PHP echo $errorPicture['projektname']; ?>Projektname:*</th>
                    <td><select size="1" name="projektname" id="projektname" class="
    <?PHP echo $errorClass['projektname']; ?>">
                            
    <option 
    value="" selected="<?PHP if(empty($_POST['projektname'])) 
    echo 
    "selected"?>"
                            >Bitte ausw&auml;hlen</option>
                        
        <option value="Pentamino" 
    <?PHP if($_POST['projektname'] == "Pentamino") echo "selected"?>>Pentamino</option>
                            
    <option value="ITS" <?PHP if($_POST['projektname'] == "ITS") echo "selected"; ?
    >>
    ITS</option>
                            
    <
    option value="Commerzbank" <?PHP if($_POST['projektname'
    == 
    "Commerzbank") echo "selected"?>>Commerzbank</option>
                            
    <option value="sonstige" <?PHP if($_POST['projektname'] == "sonstige") echo "selected"?>>sonstige</option>
                        
    </select>
                        
    <?php $_POST['projektname']=$_SESSION['projektname'];?>
                    </td>
                </tr>
                <tr>
                    <th align="left">
    <?PHP echo $errorPicture['report'];?>Report/Tätigkeit:*</th>
                    <td colspan="3"><textarea name="report" class="
    <?php echo $errorClass['report']?>" id="report" cols="50" rows="5"  >
    <?php echo $_POST['report']=$_SESSION['report'];?></textarea></td>
                </tr>
                <tr>
                    <th align="left">
    <?php echo $errorPicture['projektbeginn']; ?>Projektbeginn:(HH:MM)*</th>
                    <td><input class="
    <?PHP echo $errorClass['projektbeginn']; ?>"id="projektbeginn"  
    name="projektbeginn" value="
    <?PHP echo $_POST['projektbeginn']=$_SESSION['projektbeginn']; ?>"/></td>
                    <th align="left">
    <?PHP echo $errorPicture['projektende']; ?>Projektende:*</th>
                    <td><input class="
    <?PHP echo $errorClass['projektende']; ?>"id="projektende" name="projektende" value="
    <?PHP echo $_POST['projektende']=$_SESSION['projektende']; ?>"/></td>
                </tr>
                <tr>
                    <th align="left">
    <?PHP echo $errorPicture['n_rechenbarezeit']; ?>nicht anrechenbare Zeit:*</th>
                    <td><input class="
    <?PHP echo $errorClass['n_rechenbarezeit']; ?>"id="n_rechenbarezeit"  name="n_rechenbarezeit" value="
    <?PHP echo $_POST['n_rechenbarezeit']=$_SESSION['n_rechenbarezeit']; ?>"/></td>
                    <th align="left">
    <?PHP echo $errorPicture['pause']; ?>Pause:*</th>
                    <td><input class="
    <?PHP echo $errorClass['pause']; ?>"id="pause"  name="pause" value="<?PHP echo $_POST['pause']=$_SESSION['pause']; ?>"/></td>
                </tr>
                <tr>
                    <th align="left"><?PHP echo $errorPicture['fahrzeit1']; ?>Fahrzeit1:*</th>
                    <td><input class="
    <?PHP echo $errorClass['fahrzeit1']; ?>" id="fahrzeit1" name="fahrzeit1" value="
    <?PHP echo $_POST['fahrzeit1']=$_SESSION['fahrzeit1']; ?>"/></td>
                    <th align="left">
    <?PHP echo $errorPicture['fahrzeit2']; ?>Fahrzeit2:*</th>
                    <td><input class="
    <?PHP echo $errorClass['fahrzeit2']; ?>" id="fahrzeit2" name="fahrzeit2" value="
    <?PHP echo $_POST['fahrzeit2']=$_SESSION['fahrzeit2']; ?>"/></td>
                </tr>
                <tr>
                    <td align="center" colspan="4"><hr/></td>
                </tr>
                <tr>
                    <td align="right" colspan="4"><input name="submit" type="submit" value="Absenden" class="button" /></td>
                </tr>
            </table>
            <!--div id="stundentable" ENDE -->
        </form>
        <!-- Formular Ende -->
    ich habe folgendes Problem ich möchte gerne aus meiner Datenbank felder
    auslesen in ein formular und diese Editieren und zurückschreiben.
    leider funktioniert das nicht. sobald ich das formular abschicke sind
    die Felder leer, vermute das $_Session ignoriert wird.
    Zuletzt geändert von sten76; 06.02.2008, 13:47.

  • #2
    Willkommen im Forum. Regeln lesen, Code umbrechen. Sonst liest das keiner

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      und wenn du das getan hast, zeigen wir dir auch die lösung.

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        ok zeilenumbruch hab ich gemacht aber jetzt ist es nicht mehr so schön formatiert

        Kommentar


        • #5
          vermute das $_Session ignoriert wird.
          Wo steht denn dein
          PHP-Code:
          session_start(); 
          ?

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            ok die frage scheint nicht gut zu sein...

            also machen wir es allgemeiner.

            ich habe in meiner Datenbank felder die ich gerne editieren möchte.

            Dazu habe ich ein Formular gebastet..
            Jetzt habe ich die Felder in das Formular übertragen
            hier bsp. das Feld report
            PHP-Code:
            $abfrage "SELECT * from report WHERE ReportID LIKE '$report_ID' LIMIT 1";
                    
            $ergebnis mysql_query($abfrage);
                    
            $row mysql_fetch_object($ergebnis);
                    
            //einholen der Daten zum editieren aus DB
                    
            $reportID=$_SESSION['reportID']=$row->ReportID
            ich sehe auch in meinen formular die in der DB vorhanden Daten
            PHP-Code:
            <form action="<?PHP echo $script?>" method="post">
            <tr>
                <th align="left"><?PHP echo $errorPicture['report'];?>Report/Tätigkeit:*</th>
                    <td colspan="3"><textarea name="report" class="
            <?php echo $errorClass['report']?>" id="report" cols="50" rows="5"  >
            <?php echo $_POST['report']=$_SESSION['report'];?></textarea></td>
            </tr>
            jetzt möchte ich natürlich gerne was im dem Feld report drinne
            steht editieren. aber nicht löschen!. und dannach
            wieder abschicken. leider übernimmt der nicht das neu editierte .
            hoffe jetzt ich meine frage lesbarer und besser gestellt
            Zuletzt geändert von sten76; 06.02.2008, 14:15.

            Kommentar


            • #7
              Original geschrieben von jahlives
              Wo steht denn dein
              PHP-Code:
              session_start(); 
              ?

              Gruss

              tobi
              das steht in der ersten zeile im meinem skript

              Kommentar


              • #8
                Und sowas wie ne Update-Query führst du auch irgendwo aus, oder brauchst du sowas nicht?

                Kommentar


                • #9
                  ja mach ich

                  PHP-Code:
                  $eintrag "UPDATE report SET 
                  Timestamp='
                  $timestamp',ProjektName='$projektname', 
                  Datum='
                  $datum', Projektbeginn='$projektbeginn', 
                  Projektende='
                  $projektende', Pause='$pause', Reporttxt='$report', 
                  Fahrzeit1='
                  $fahrzeit1', 
                  Fahrzeit2='
                  $fahrzeit2', N_rechenbar='$n_rechenbar') 
                  WHERE ReportID='
                  $reportID'";
                                  
                  $eintragen mysql_query($eintrag);
                                      if(
                  $eintragen == true)
                                      {
                                   
                  // Alles OK
                                  
                                  
                  }
                                     else
                                      {
                                          echo 
                  "Fehler beim Speichern des Reportes. ";
                                       } 
                  ich vermute das er die $_Session net übernimmt aber keine ahnung warum

                  ich habe vorher eine Überprüfung des Formulars ob die
                  eigegebenen daten auch richtig sind (z.b. leeres formular usw)
                  und genau da ist der fehler, er zeigt an das das formular leer
                  wäre, obwohl ich die Daten in den Formularfelder sehe, nur wenn
                  ich auf abschicken klicke ... kommt die Funktion
                  if(!empty($_POST["report"])) und sagt mir das feld wäre leer was
                  aber nicht stimmt da ich ja die Formular daten vor mir sehe.
                  dannach wird mein formular neu geladen und die daten sind weg.
                  Zuletzt geändert von sten76; 06.02.2008, 14:28.

                  Kommentar


                  • #10
                    Lies die regeln und mach entsprechende Testausgaben, dann sollte sich dein Problem leicht finden lassen...

                    Kommentar


                    • #11
                      Ich habe jetzt keine Lust, das ganze Gemisch aus HTML und PHP durchzugehen. Aber hast du
                      • nach den Zuweisungen auch einmal ein
                        PHP-Code:
                        var_dump($_SESSION); 
                        gemacht?
                      • $_GET['report_ID'] überprüft?
                      • mysql_error() abgefragt?
                      • error_reporting(E_ALL) eingestellt?
                      • im folgenden Formular ($script) mal $_POST überprüft?
                      Und kannst du uns erklären, was das und ähnliche Konstrukte in deinem Code sollen:
                      PHP-Code:
                      <input class="<?PHP echo $errorClass['datum']?>"id="datum" name="datum" value="<?PHP echo $_POST['datum']=$_SESSION['datum']; ?>"/>
                      Gruss
                      H2O

                      Kommentar


                      • #12
                        Original geschrieben von H2O
                        Ich habe jetzt keine Lust, das ganze Gemisch aus HTML und PHP durchzugehen. Aber hast du
                        • nach den Zuweisungen auch einmal ein
                          PHP-Code:
                          var_dump($_SESSION); 
                          gemacht?
                        • $_GET['report_ID'] überprüft?
                        • mysql_error() abgefragt?
                        • error_reporting(E_ALL) eingestellt?
                        • im folgenden Formular ($script) mal $_POST überprüft?
                        Und kannst du uns erklären, was das und ähnliche Konstrukte in deinem Code sollen:
                        PHP-Code:
                        <input class="<?PHP echo $errorClass['datum']?>"id="datum" name="datum" value="<?PHP echo $_POST['datum']=$_SESSION['datum']; ?>"/>
                        zum ersten nein werde ich jetzt überprüfen.
                        zum
                        PHP-Code:
                        <input class="<?PHP echo $errorClass['datum']?>"id="datum" name="datum" value="<?PHP echo $_POST['datum']=$_SESSION['datum']; ?>"/>
                        ja . ich habe vorher eine SQL anweisung mit der ich sämtliche Datenfelder in diese $_SEssion-Variablen abspeichere . diese Sessionvariablen soll dazu dienen das die Formularfelder vorbelegt sind und dann editiert werden können. Die Felder sind vorbelegt- das sehe ich also die SQL - Anweisung funktioniert. allerdings das zusammenspiel mit POST nicht.
                        ich geh jetzt grade nooch mal alles durch...

                        Kommentar


                        • #13
                          Ich habe das dumpfe Gefühl, dass du hier einiges verwechselst. Wenn ich dich richtig verstehe, willst du einfach ein Formular erstellen, die Input-Felder mit Werten aus der DB vorbelegen, und diese dann aber ändern können.
                          Wenn es so ist, brauchst du auch keine Sessions, sondern du holst die Daten aus der DB und füllst sie in dein Formular. Wenn du dieses dann abgeschickt hast, dann sind deine Daten automatisch, ohne dein Zutun, im globalen Array $_POST.
                          Hier einfach ein kleines Beispiel:
                          form1.php (Formular):
                          PHP-Code:
                          <?php
                          $sql 
                          "SELECT
                                      name, 
                                      vorname
                                  FROM
                                      benutzer
                                  WHERE
                                      benutzer = 'sten76'"
                          ;
                          $res mysql_query($sql) || die(mysql_error());
                          $satz mysql_fetch_object($res);

                          echo 
                          "
                              <h1>Aufrufendes Script</h1>
                              <form action='form2.php' method='post'>
                              <table border='0'>
                              <tr><td>Vorname:</td><td><input name='vorname' value='
                          $satz->vorname' /></td></tr>
                              <tr><td>Name:</td><td><input name='name' value='
                          $satz->name' /></td></tr>
                              <tr><td colspan='2' align='center'><input type='submit' name='go' value='Go' /></td></tr>
                              </table>
                              </form>\n"
                          ;
                          ?>
                          form2.php (Auswertung):
                          PHP-Code:
                          <?php
                          echo "
                              <h1>Aufgerufenes Script</h1>
                              <table border='1'>
                              <tr><td>Vorname:</td><td>" 
                          $_POST['vorname'] . "</td></tr>
                              <tr><td>Name:</td><td>" 
                          $_POST['name'] . "</td></tr>
                              </table>\n"
                          ;
                          ?>
                          Zuletzt geändert von H2O; 07.02.2008, 09:26.
                          Gruss
                          H2O

                          Kommentar


                          • #14
                            PHP-Code:
                            value='$obj->vorname' 
                            muss dann $satz->vorname heissen oder?

                            ja genau, danke werds ausprobieren
                            Zuletzt geändert von sten76; 07.02.2008, 09:06.

                            Kommentar


                            • #15
                              Original geschrieben von sten76

                              muss dann $satz->vorname heissen oder?
                              Ja natürlich. Sorry, ich hab mich verschrieben und habs nun korrigiert
                              Gruss
                              H2O

                              Kommentar

                              Lädt...
                              X