Mysql speichert die Werte nicht

supser

Erfahrenes Mitglied
Hallo, habe folgendes script mit 10 Textfeldern:

PHP:
<form action="work.php" method=post>
<body background="../0000.jpg" link="#FFCC00" vlink="#FFCC00" alink="#FFCC00">
<div align="center">
<table width="100%">
    <tr>
      <td height="28" bgcolor="#FFCC00"> 
        <div align="center"><br>
        </div></td>
    </tr>
  </table>
  <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Adressenverwaltung</strong></font></p>
  <table width="45%">
    <tr>
      <td width="20%"><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Firma:</font></td>
      <td width="80%"> <input name="firma" type="text" size="70"90 id="firma""></td>
    </tr>
    <tr> 
      <td height="23"> <p><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Anschrift:</font></p></td>
      <td><input name="anschrift" type="text" id="anschrift" size="70"90"></td>
    </tr>
    <tr> 
      <td><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Plz 
        / Ort:</font></td>
      <td><input name="ort" type="text" id="ort" size="70"></td>
    </tr>
    <tr> 
      <td><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Ansprechpartner:</font></td>
      <td><input name="ansprechpartner" type="text" id="ansprechpartner" size="40"></td>
    </tr>
    <tr> 
      <td><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Email:</font></td>
      <td><input name="email" type="text" id="email" size="40"></td>
    </tr>
    <tr> 
      <td><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Tel:</font></td>
      <td><input name="tel" type="text" id="tel" size="30"></td>
    </tr>
    <tr> 
      <td><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Mobil:</font></td>
      <td><input name="mobil" type="text" id="mobil" size="30"></td>
    </tr>
    <tr> 
      <td><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Fax:</font></td>
      <td><input name="fax" type="text" id="fax" size="30"></td>
    </tr>
    <tr> 
      <td><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Kto 
        Nr:</font></td>
      <td><input name="kto" type="text" id="kto" size="30"></td>
    </tr>
    <tr> 
      <td height="147"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Notizen:</font></td>
      <td><textarea name="notizen" cols="58" rows="10" id="notizen"></textarea></td>
    </tr>
  </table>
  <p><a href="work.php">jhgjhgjhg</a> 
    <input type="submit" name="Submit2" value="Datensatz speichern" id="Submit2">
    <input name="Submit22" type="button" onClick="window.print()

" value="Drucken">
  </p>
  <table width="100%" height="32">
    <tr> 
      <td bgcolor="#FFCC00"> <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
          </font></div></td>
    </tr>
  </table>
  
</div>

dann eine datei dies in die Datenbank schreibt:

PHP:
<?php

$host = "";
$user = "";
$password = "";
$dbname = "";
$tabelle ="adressen";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "INSERT into $tabelle values ('0', '$firma', '$anschrift', '$ort', '$ansprechpartner', '$email', '$tel', '$mobil', '$fax', '$kto', '$notizen')";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag war erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

?>

Er schreibt Dateneintrag erfolgreich stimmt auch aber es sind keine Werte drin nur ein leerer datensatz ?
 
Ich gehe mal stark davon aus, dass bei dir der Wert register_globals auf 0 steht.
Das heißt alle Werte die du von einem Formular holst musst du vorher abfangen:
PHP:
<?php
$firma = ( !empty($_POST['firma']) AND isset($_POST['firma']) ) ? $_POST['firma'] : "";
// und das mit allen Werten aus dem Formular

$host = "";
$user = "";
$password = "";
$dbname = "";
$tabelle ="adressen";

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "INSERT into $tabelle values ('0', '$firma', '$anschrift', '$ort', '$ansprechpartner', '$email', '$tel', '$mobil', '$fax', '$kto', '$notizen')";

if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag war erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);

?>
Stimmts?
 
Komm nicht so recht weiter wo genau muss diese zeile und die weitern dann eingesetzt werden:

PHP:
$firma = ( !empty($_POST['firma']) AND isset($_POST['firma']) ) ? $_POST['firma'] :

?
 
Nach diesem Schema:
PHP:
$firma = ( !empty($_POST['firma']) ) ? $_POST['firma'] : "";
$anschrift = ( !empty($_POST['anschrift']) ) ? $_POST['anschrift'] : "";
$ort = ( !empty($_POST['ort']) ) ? $_POST['ort'] : "";
 
Zuletzt bearbeitet:
Ja die anderen Zeilen sind klar aber geht irgenwie nicht bei mir speichert wieder nur nen leeren satz ?
 
Wenn mit der empty()-Funktion gearbeitet wird, ist eine Prüfung mit isset() nicht mehr nötig, da empty() ebenfalls die Existenz einer Variable prüft.
Der genaue Unterschied zwischen beiden Funktionen (und noch weiteren Vergleichen) ist übrigens in der PHP-Typen-Vergleichstabelle zu finden.
 
Zurück