Daten in Tabelle eingeben

Diskutiere mit über: Daten in Tabelle eingeben im Web-Programmierung Forum

  1. librarian

    librarian Thread Starter MacUser Mitglied

    Beiträge:
    36
    Zustimmungen:
    0
    Registriert seit:
    21.08.2005
    Hallo!
    Bin dabei, ein PHP-Skript zu schreiben, das mit mysql Daten in eine Tabelle einlesen soll.
    Das Skript übernimmt Daten aus einem HTML-Formular und gibt sie aus. Ich kann auch über das Skript Daten in die Tabelle eintragen, aber wenn ich statt konkreter Daten die Variablen benutze, die auch zur Ausgabe verwendet werden, werden die Namen der Variablen in die Tabelle eingelesen.
    Das sollte doch nicht!
    Habe verschiedentlich herumprobiert und werde das auch weiter tun, könnte Denkanstöße aber sehr gut gebrauchen...
     
  2. scope

    scope MacUser Mitglied

    Beiträge:
    4.081
    Zustimmungen:
    301
    Registriert seit:
    24.01.2005
    Hast du den String innerhalb einfacher Anführungszeichen eingefasst?
    Innerhalb von 'php-code-mit-variablen-bla-bla' werden keine Variablen interpretiert.
    Du musst dafür entweder doppelte Anführungszeichen nehmen oder die Variablen getrennt einbinden 'code' . $variable . 'code'.

    Das wäre so mein Schuss ins Blaue, ohne dass du was genaues aus dem Quellcode gepostet hast.
     
    Zuletzt bearbeitet: 28.08.2005
  3. mkoessling

    mkoessling MacUser Mitglied

    Beiträge:
    1.487
    Zustimmungen:
    0
    Registriert seit:
    02.02.2005
    Man müßte schon den Teil des Quell-Codes sehen um hier zu helfen.
     
  4. librarian

    librarian Thread Starter MacUser Mitglied

    Beiträge:
    36
    Zustimmungen:
    0
    Registriert seit:
    21.08.2005
    Quellcode

    Das ist der Teil aus dem Skript, mit dem ich die Daten in die Tabelle einlesen kann. Eigentlich müßten doch jetzt bloß die konkreten Daten durch Variablen ersetzt werden, oder nicht?


    Code:
    $sql = 'INSERT INTO `studidaten` ( `lfd_nr` , `name` , `vorname` , `b_day` , `mat_nr` , `adresse` , `plz` , `wohnort` , `land` , `phon` , `email` ) '
            . ' VALUES ( \'\', \'Panter\', \'Paulchen\', \'19780306\', \'123456\', \'Hauptstr. 90\', \'56789\', \'Entenhausen\', \'Deutschland\', \'234567890\', \'Panter@gmx.de\' );'
            . ' ';

    So in etwa? Hatte auch schon einfache Anführungszeichen und mal die Schrägstriche rausgenommen, aber das reicht wohl nicht...


    Code:
    $sql = 'INSERT INTO `studidaten` ( `lfd_nr` , `name` , `vorname` , `b_day` , `mat_nr` , `adresse` , `plz` , `wohnort` , `land` , `phon` , `email` ) '
            . ' VALUES ( Null, \"$_POST[name]\", \"$_POST[vorname]\", \"$_POST[b_day]\", \"$_POST[mat_nr]\", \"$_POST[adresse]\", \"$_POST[plz]\", \"$_POST[wohnort]\", \"$_POST[land]\", \"$_POST[phon]\", \"$_POST[email]\" );'
            . ' ';
     
  5. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Innerhalb der ' werden die Variablen nich durch deren Inhalt ersetzt.
    Gib doch mal $sql aus, um zu sehen, was da drin steht.
     
  6. mkoessling

    mkoessling MacUser Mitglied

    Beiträge:
    1.487
    Zustimmungen:
    0
    Registriert seit:
    02.02.2005
    Versuche es mal so:
    Code:
    import_request_variables("p","frm_");
    Code:
    $sql="INSERT INTO studidaten (lfd_nr, name, vorname, b_day, mat_nr, adresse, plz, wohnort, land, phon, email) VALUES ('', '$frm_name', $frm_vorname', '$frm_b_day', '$frm_mat_nr', '$frm_adresse', '$frm_plz', '$frm_wohnort', '$frm_land', '$frm_phon', '$frm_email');";
    
    Ich hoffe, ich habe keine Tippfehler gemacht, passiert schon mal schnell, aber so sollte es eigentlich gehen.
     
  7. librarian

    librarian Thread Starter MacUser Mitglied

    Beiträge:
    36
    Zustimmungen:
    0
    Registriert seit:
    21.08.2005
    Wo muß ich import_request_variables("p","frm_"); denn im Skript schreiben?

    Mittlerweile sieht's bei mir so aus


    Code:
    <?php
    include ('contact.php');
    
    $tabelle='studidaten';
    
    $sql = 'INSERT INTO `studidaten` ( `lfd_nr` , `name` , `vorname` , `b_day` , `mat_nr` , `adresse` , `plz` , `wohnort` , `land` , `phon` , `email` ) '
            
    /*Zeile 28, auf die die Fehlermeldung sich bezieht, fängt hier an und endet vor mysql_query */
    . ' VALUES ( Null, '.$_POST[name]', '.$_POST[vorname]', '.$_POST[b_day]', '.$_POST[mat_nr].', '.$_POST[adresse].', '.$_POST[plz].', '.$_POST[wohnort].', '.$_POST[land].', '.$_POST[phon].', '.$_POST[email].' );'
            . ' ';
    
    mysql_query($sql, $db);
    echo '<br><h1 align="center">Diese Daten wurden abgespeichert.</h1>
    
    <table align="center" cellpadding="2">
    <tr>
      <td><p  id="tabelle">Name</p></td>
      <td><p  id="tabelle">'.$_POST[vorname].' '.$_POST[name].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">Geburtsdatum</p></td>
      <td><p  id="tabelle">'.$_POST[b_day].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">Matrikelnummer</p></td>
      <td><p  id="tabelle">'.$_POST[mat_nr].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">Stra&szlig;e &<br> Hausnummer</p></td>
      <td><p  id="tabelle">'.$_POST[adresse].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">PLZ</p></td>
      <td><p  id="tabelle">'.$_POST[plz].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">Wohnort</p></td>
      <td><p  id="tabelle">'.$_POST[wohnort].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">Land</p></td>
      <td><p  id="tabelle">'.$_POST[land].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">Telefon</p></td>
      <td><p  id="tabelle">'.$_POST[phon].'</p></td>
    </tr>
    <tr>
      <td><p  id="tabelle">E-Mail</p></td>
      <td><p  id="tabelle">'.$_POST[email].'</p></td>
    </tr>
    </table>';
    
      echo '
      <TABLE align="center" cellpadding="5" cellspacing="0">
      <TR>
          <TD> 
               <a href=eingabeformular.html><p>weitere Eingabe</p>
          </TD>
          
        </TR>
      </TABLE>';
    
    
    ?>
    

    Und das ist die Fehlermeldung, die ich bekomme, aber nicht wirklich verstehe. (Bin nach wie vor Anfänger...):

    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\apachefriends\xampp\htdocs\hausarbeit_php\eingabe.php on line 28
     
  8. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Wenn
    Code:
    $_POST[name]
    nicht in Anführungszeichen steht, musst Du schreiben
    Code:
    $_POST["name"]
    oder
    Code:
    $_POST['name']
    .
     
  9. librarian

    librarian Thread Starter MacUser Mitglied

    Beiträge:
    36
    Zustimmungen:
    0
    Registriert seit:
    21.08.2005
    Das habe ich gemacht, leider ändert das nichts an der Fehlermeldung...
     
  10. msslovi0

    msslovi0 MacUser Mitglied

    Beiträge:
    2.713
    Zustimmungen:
    115
    Registriert seit:
    20.03.2005
    Es fehlt jeweils ein Punkt hinter
    Code:
    $_POST["name"], $_POST["vorname"] und $_POST["b_day"]
    .

    Dann klappt es php-seitig, MySQL wird dir den Code aber trotzdem um die Ohren hauen, da deine Strings nicht von Anführungszeichen eingeschlossen sind. Ein addslashes() empfiehlt sich außerdem bei allen CHAR-Feldern, damit das ganze nicht irgendwann irgendwem um die Ohren fliegt.

    BTW: Den Sinn der Zeile:
    Code:
            . ' '; 
    
    habe ich nicht verstanden. Genausowenig, warum du ein NULL an MySQL für die laufende Nummer verfütterst. Wenn das ein auto_increment-Feld ist kümmert sich MySQL selbständig um den richtigen Wert - auch ohne explizite Übergabe.

    Matt
     
Die Seite wird geladen...
Ähnliche Themen - Daten Tabelle eingeben Forum Datum
Suche einfachste "Laien"-Möglichkeit Daten aus XML-Datei auf Webseite darzustellen. Web-Programmierung 27.11.2015
Login Daten von iWeb/mobile.me page mit link übertragen. Web-Programmierung 06.03.2010
PHP und MySql Daten verwalten Web-Programmierung 22.12.2009
Daten auf Webseiten automatisch erfassen Web-Programmierung 14.04.2009
JQuery $.post dynamische Daten versenden Web-Programmierung 08.12.2008

Diese Seite empfehlen

Benutzerdefinierte Suche