Bereits eingegebene Daten wieder anzeigen

Vielen Dank! Sieht schon besser aus so ohne Fehler :)

Beim reinschreiben in die DB im File 4.php kommt jetzt aber ein Fehler...

Code:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Inetpub\wwwroot\johnlay_test\4.php on line 21

Linie 21 sieht so aus:

Code:
mysql_query("INSERT INTO test VALUE ('$_SESSION['q1']','$_SESSION['q2']','$_SESSION['q3']')");

Ist da was falsch?

Gruss Thomas
 
Mhm hab noch nicht soooo viel mit MySQL gemacht nun

Aber ich nehm mal an es liegt hier ran

mysql_query('INSERT INTO TabellenName(test) VALUE
('".$_SESSION["q1"]."'
,'".$_SESSION["q2"]."'
,'".$_SESSION["q3"]."')');

Aber so richtig wird der Befehlt auch nicht sein , wie gesagt hab mich noch nicht soviel mit MySQL beschäftig und müsste da nun selber erst nachschaun :) Die Fehler meldung die er Dir ausgibt ist halt die $_SESSION["q1"] da ist das " ' " Anführungszeichen falsch.
 
Zuletzt bearbeitet:
Also wenn ich ehrlich bin wirkt dein Code ein wenig verwirrend. Du hast ja angedeutet, dass du wenig Zeit hattest, also kann es natürlich daran liegen und dein Code ist sonst viel klarer- whatever..

Ich verstehe auch nicht so ganz, warum du z.B. noch den Befehl "ob_start()" und "ob_end_flush()" verwendest. Ich versuche das hier mal möglichst klar und einfach zu gestalten um eventuelle Missverständnisse zu berichtigen (ob du nun lieber andere Dateien per "include" einbindest oder nicht ist natürlich deine Sache, ich mache es hier der Einfachheit halber mal nicht)- quasi ein Crash-Kurs in Sessions:

seite1.php
PHP:
          <?
          session_start();
          session_register("q1");
          session_register("q2");
          session_register("q3");
        ?>
          
          <html>
          <body>
          
            <form action="seite2.php" method="post">
          Wie oft besuchst du unsere Seite?<br>
          <input type="radio" name="q1" value="tag" checked>Täglich!<br>
           <input type="radio" name="q1" value="woche">Wöchentlich!<br>
           <input type="radio" name="q1" value="selten">Nicht so oft<p>
          <input type="submit" value="Abschicken!">
          
          </body>
          </html>

seite2.php
PHP:
          <?
          session_start();
          $_SESSION['q1']=$_POST["q1"];
          ?>
          
          <html>
           <body>
           
             <form action="seite3.php" method="post">
          Wie viel Geld gibst du im Monat für Gummibärchen aus?<br>
           <input type="radio" name="q2" value="5" checked>5 Euro oder weniger<br>
            <input type="radio" name="q2" value="10">5 bis 10 Euro<br>
            <input type="radio" name="q2" value="mehr">mehr als 10 Euro<p>
           <input type="submit" value="Abschicken!">
           
           </body>
           </html>

seite3.php
PHP:
          <?
           session_start();
           $_SESSION['q2']=$_POST["q2"];
           ?>
           
           <html>
            <body>
            
              <form action="seite4.php" method="post">
          Wie oft kannst du dich im Kreis drehen?<br>
            <input type="radio" name="q3" value="10" checked>10 Mal<br>
             <input type="radio" name="q3" value="100">100 Mal<br>
             <input type="radio" name="q3" value="kotz">bis ich göbeln muss<p>
            <input type="submit" value="Abschicken!">
            
            </body>
            </html>

seite4.php
PHP:
           <?
            session_start();
            $_SESSION['q3']=$_POST["q3"];
          
 echo 'Frage 1: '.$_SESSION['q1'].'<br>Frage 2: '.$_SESSION['q2'].'<br>Frage 3: '.$_SESSION['q3']; // hier gebe ich zum Spaß nochmal alle Ergebnisse aus...
         
    mysql_connect //bla bla bla
         mysql_query("INSERT INTO tbl_umfrage VALUE ('$_SESSION['q1']','$_SESSION['q2']'.'$_SESSION['q3']')");
    mysql_close(); //sollte man immer machen
         
         session_unregister("q1");
         session_unregister("q2");
         session_unregister("q3");
         sesson_destroy();
         ?>
 
Zuletzt bearbeitet:
Hallo Zusammen

Danke erst mal für eure Bemühungen.

Also ich habs genau so gemacht wie Vertigo und dieser Fehler kommt trotzdem noch. Ausgeben per Echo funktioniert aber er schreibts nicht in die Tabelle rein.
Was mich mehr beunruhigt ist der Sinn des Ganzen. Ich wollte ja ein Lösung, womit ich, wenn ich auch "vorhergehende Frage" klicke, die angekreuzten Kästchen noch sehen kann. Das funktioniert ja so nicht, alle Radioknöpfe sind leer wenn ich zurück gehe (ausser mit dem Browser-Zurück-Button, aber das mute ich ja keinem zu).
Nun ja, dieser komische Fehler bleibt... kommts wohl drauf an, was ich für Tabellenfelder definiert habe? Es werden Zahlen reingeschrieben, also habe ich INTs definiert, aber auch mit TEXT probiert...

Gruss Thomas
 
FipsTheThief hat gesagt.:
Aber ich nehm mal an es liegt hier ran

mysql_query('INSERT INTO TabellenName(test) VALUE
('".$_SESSION["q1"]."'
,'".$_SESSION["q2"]."'
,'".$_SESSION["q3"]."')');

Das könnte natürlich auch sein. Falls es mit meinem Vorschlag nicht schreibe die globalen Variablen doch kurzerhand mal eben in lokale Variablen und versuch den Query nochmal auszuführen:

PHP:
  $q1 = $_SESSION['q1'];
  $q2 = $_SESSION['q2'];
  $q3 = $_SESSION['q3'];
  
  mysql_query("INSERT INTO tbl_umfrage VALUE ('$q1','$q2','$q3')");
 
Zuletzt bearbeitet:
So ist's schon besser, er melden dann einfach unexpected T_STRING beim unregister. Wenn ich die unregister-Zeilen mal testweise auskommentiere und dann die Umfrage durchführe, scheint es zu funktionieren, es kommt kein Fehler mehr. Dafür wird aber nichts in die Tabelle geschrieben! Den Tabellennamen habe ich übrigens geändert, dort ist kein Fehler.

EDIT: Stop, es hat ein Semikolon gefehlt. Also muss ich nichts mehr auskommentieren. Jetzt läufts, aber es schreibt nichts in die Tabelle rein... also noch nicht 100%ig ok... die Felder sind übrigens INT, Länge 2 und heissen q1, q2 und q3.
 
Zuletzt bearbeitet:
Dommas hat gesagt.:
Ich wollte ja ein Lösung, womit ich, wenn ich auch "vorhergehende Frage" klicke, die angekreuzten Kästchen noch sehen kann. Das funktioniert ja so nicht, alle Radioknöpfe sind leer wenn ich zurück gehe (ausser mit dem Browser-Zurück-Button, aber das mute ich ja keinem zu).

RICHTÖÖÖG! Ich hatte gehofft, dass es dir klar wird, wie du das machen musst, wenn du siehst, wie du auf zuvor gemachte Eingaben wieder zurückgreifen kannst. Klassischer Fall von unbeabsichtigter Verwirrung. Sorry.:-(

AAAALSO:
Damit deine Eingaben wieder auftauchen musst du natürlich eine Abfrage in den HTML-Code einbauen, die die Werte aus den globalen Variablen ausliest und, wenn ein Wert drin steht (wenn die Frage schonmal beantwortet wurde), im Formular den entsprechenden Punkt wieder ankreuzt.

Beispiel:
PHP:
      $html='
      <html><body>
      <form action="seite2.php" method="post"> 
      Wie oft besuchst du diese Seite?<br>
      ';
      
      if($_SESSION['q1']=="tag")
  $html.= //"checked" setzen bei der entsprechenden Option 
 //=>der PUNKT ist wichtig, damit hängt man Werte an eine Variable dran statt sie zu überschreiben
      if($_SESSION['q1']=="woche")
  $html.= //"checked" setzen bei der entsprechenden Option
      if($_SESSION['q1']=="selten")
      $html.= //"checked" setzen bei der entsprechenden Option
      
      else
 $html.= //normales Formular anzeigen
   
  $html.=</body></html>;
  echo $html;

Und so weiter...
 
Zuletzt bearbeitet:
Zurück