Parse error bei Variable (HILFE)

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

  • Parse error bei Variable (HILFE)

    Ich habe ein Formular, in dem Felder aus der SQL-datenbank mittels einer Entlosschleife ausgegeben werden.
    Die Inputs haben dann den Namen der felder in der SQL-datenbank.

    Nach abschicken des Formulars über die POST-funktion, möchte ich auch über eine entlosschleife die Daten in die Datenbank schreiben und mir dafür folgendes überlegt:

    PHP-Code:
    <?PHP
    session_start
    ();
    include(
    'db_connection_class.php');

    $myconnect = new db_connection();
    $myconnect->connect();

    $name $_SESSION[name];
    $pass $_SESSION[pass];
    $user $myconnect->check_login($name,$pass);

    $somefield $myconnect->set_id_field($_POST['id']);


        for (
    $iterator 0$iterator mysql_num_rows$somefield ); $iterator++)
            {
            
    $field mysql_fetch_array($somefieldMYSQL_ASSOC);

                     
    $text "$_POST['".$field['f_name']."']";
                     echo 
    $text;
            
    $myconnect->update_dat($field['f_name'],$text,$user['u_id']);

            }

    header("location: msg.php?id=9");
    Als Fehlermeldung bekomme ich aber:
    Code:
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE,
    expecting T_STRING or T_VARIABLE or T_NUM_STRING in
     /usr/export/www/hosting/happy89/re/konfig_edit_check.php on line 19
    Und dies ist:
    $text = "$_POST['".$field['f_name']."']";

    Was ist daran falsch?
    Zuletzt geändert von HaPpY-89; 27.05.2006, 17:24.

  • #2
    bei doppelten Anführungszeichen versucht php Variablen zu ersetzen, da $_POST eine Variable ist und direkt danach ein [ folgt, versucht php da ein Array zu ersetzen, da aber in dem Moment der String zu ende ist *boom*

    mach vernünftigt mit einfachen Anführungszeichen
    $text = '$_POST[\''.$field['f_name'].'\']';


    (und brich deinen Code um!)

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Ich habe
      PHP-Code:
      $text '$_POST[''.$field['f_name'].'']'
      eingefügt und bekomme jetzt folgendes zu hören:
      Code:
      Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in
      /usr/export/www/hosting/happy89/re/konfig_edit_check.php on line 19

      Kommentar


      • #4
        so sollte es lauten
        $text = '$_POST[\\''.$field['f_name'].'\\']';
        Das dumme Board frisst Backslashes -.-

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Wie wär's, wenn du dich mal ein wenig über solche Grundlagen informierst ...?
          PHP-Code:
          $text $_POST[$field['f_name']]; 
          Und auch das ist eigentlich Unfug - du kannst gleich mit dem Wert aus $_POST arbeiten, und brauchst ihn nicht sinnfrei hin- und herkopieren.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Original geschrieben von wahsaga
            Wie wär's, wenn du dich mal ein wenig über solche Grundlagen informierst ...?
            PHP-Code:
            $text $_POST[$field['f_name']]; 
            Und auch das ist eigentlich Unfug - du kannst gleich mit dem Wert aus $_POST arbeiten, und brauchst ihn nicht sinnfrei hin- und herkopieren.
            Ich habe ja in der SQL eingegeben, welche Felder es gibt (um sie erweitern zu können). Und mittels einer schleife soll er mir dann den POST-inhalt für das Feld $field['f_name] geben welcher dann in $text stehen soll um diesen dann in die SQL zu übertragen.

            Bei
            $text = '$_POST[\''.$field['f_name'].'\']';
            bekomme ich (wenn ich $text über ein echo ausgebe)
            Code:
            UPDATE dat set Betriebsystem='$_POST['Betriebsystem']' WHERE d_id='1'
            heraus.

            Bei
            $text = $_POST[$field['f_name']];
            bekomme ich
            Code:
            UPDATE dat set Betriebsystem='' WHERE d_id='1'
            heraus.


            Betriebsystem ist der Inhalt von $field['f_name']

            Kommentar


            • #7
              Original geschrieben von HaPpY-89
              Und mittels einer schleife soll er mir dann den POST-inhalt für das Feld $field['f_name] geben welcher dann in $text stehen soll um diesen dann in die SQL zu übertragen.



              probiers erstmal mit
              PHP-Code:
              error_reporting(E_ALL); 
              an den Anfang der Datei setzen

              und dann würd ichs mal mit
              PHP-Code:
              $myconnect->update_dat($field['f_name'], $_POST[$field['f_name']], $user['u_id']); 
              probieren und dabei mal die Keys von $_POST und die Ausgabe von $field['f_name'] vergleichen


              und zur Hölle, mach einen ZEILENUMBRUCH in die Fehlermeldung im ersten Post rein, sonst ist das mein letztes Posting hier .... horizontale Scrollbalken sind nämlich nicht schön zum Lesen
              Zuletzt geändert von ghostgambler; 27.05.2006, 17:08.

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Original geschrieben von HaPpY-89
                Bei
                $text = '$_POST[\''.$field['f_name'].'\']';
                bekomme ich (wenn ich $text über ein echo ausgebe)
                UPDATE dat set Betriebsystem='$_POST['Betriebsystem']' WHERE d_id='1'
                heraus.
                Natürlich - weil du unsinnigerweise die Variable in Hochkommata eingebunden hast - und dann mit denen aber offenbar noch nicht mal umzugehen weißt, bzw. den Unterschied zu Anführungszeichen nicht kennst.


                Und zum anderen:
                Was ist denn überhaupt der Inhalt von $field['f_name']?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X