Daten an Datenbank senden klappt nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alt
daten
error
fehler
folgende fehlermeldung
foto
gen
insert
jahr
lag
manual
monat
result
spalten
speicher
spitzname
stichwort
syntax
wohnort
word
- 
    
    Habe folgendes geschrieben:
 
 <? include("header.inc.php"); ?>
 <center>
 
 <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="80%" id="AutoNumber1">
 <tr>
 <td width="100%" bgcolor="#5C6B9E"><b>
 <font face="Verdana" size="1" color="#FFFFFF">> Foto hinzuf?gen</font></b></td>
 </tr>
 <tr>
 <td width="100%" bgcolor="#8EBEF2"><b><font size="1" face="Verdana">
 
 
 
 
 
 
 <?php include("../connect.inc.php");?>
 
 <?
 
 if ($submit == "Speichern") {
 
 $sql = "INSERT INTO fotos (name,ort,alter,jahr,monat,tag) VALUES ('$name','$ort','$alter','$jahr','$monat','$tag')";
 
 mysql_query($sql,$db);
 
 }?>
 
 <form method="post" action="<?echo $PHP_SELF;?>">
 <TABLE width="100%" height="0%" bgcolor="#8EBEF2" align="center">
 
 <TR>
 
 <TD>
 <font size="1" face="Verdana"><b>
 Vor- Nachname oder Spitzname:
 
 </TD>
 
 <TD>
 
 <input type="text" name="name" value="" size="30" maxlength="30">
 
 </TD>
 
 </TR>
 <TR>
 
 <TD>
 <font size="1" face="Verdana"><b>
 Der Wohnort:
 
 </TD>
 
 <TD>
 
 <input type="text" name="ort" value="" size="30" maxlength="30">
 
 </TD>
 
 </TR>
 <TR>
 
 <TD>
 <font size="1" face="Verdana"><b>
 Das Alter:
 
 </TD>
 
 <TD>
 
 <input type="text" name="alter" value="" size="30" maxlength="30">
 
 </TD>
 
 </TR>
 
 <TR>
 
 <TD>
 <font size="1" face="Verdana"><b>
 Das Jahr, in dem das Foto erscheinen soll:
 
 </TD>
 
 <TD>
 
 <p>
 <select name="jahr" size="3">
 <option>2006</option>
 <option>2007</option>
 <option>2008</option>
 </select>
 </p>
 
 </TD>
 
 </TR>
 <TR>
 
 <TD>
 <font size="1" face="Verdana"><b>
 Der Monat, in dem das Foto erscheinen soll:
 
 </TD>
 
 <TD>
 
 <p>
 <select name="monat" size="3">
 <option>01</option>
 <option>02</option>
 <option>03</option>
 <option>04</option>
 <option>05</option>
 <option>06</option>
 <option>07</option>
 <option>08</option>
 <option>09</option>
 <option>10</option>
 <option>11</option>
 <option>12</option>
 </select>
 </p>
 
 </TD>
 
 </TR>
 <TR>
 
 <TD>
 <font size="1" face="Verdana"><b>
 Der Tag, an dem das Foto erscheinen soll:
 
 </TD>
 
 <TD>
 
 <p>
 <select name="tag" size="3">
 <option>01</option>
 <option>02</option>
 <option>03</option>
 <option>04</option>
 <option>05</option>
 <option>06</option>
 <option>07</option>
 <option>08</option>
 <option>09</option>
 <option>10</option>
 <option>11</option>
 <option>12</option>
 <option>13</option>
 <option>14</option>
 <option>15</option>
 <option>16</option>
 <option>17</option>
 <option>18</option>
 <option>19</option>
 <option>20</option>
 <option>21</option>
 <option>22</option>
 <option>23</option>
 <option>24</option>
 <option>25</option>
 <option>26</option>
 <option>27</option>
 <option>28</option>
 <option>29</option>
 <option>30</option>
 <option>31</option>
 </select>
 </p>
 
 </TD>
 
 
 
 <TR>
 
 <TD>
 
  
 
 </TD>
 
 <TD>
 
 <input type="submit" name="submit" value="Speichern">
 
 </TD>
 
 </TR>
 
 </TABLE>
 
 </form>
 
 </TABLE>
 <br>
 <br>
 <? include("../footer.inc.php"); ?>
 
 aber die daten kommen einfach nicht in die datenbank rein, findet ihr da nen fehler? bin mir sicher das da alles richtig ist!
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage 
- 
    
    Stichwort register_globals
- 
    
    ???hm, das sagt mir leider ganix, fange aber auch erst grade mit php an... kannste mir bitte noch weiter helfen?!
- 
    
    
 $name = $_POST["name"]; $ort = $_POST["ort"]; $alter = $_POST["alter"]; $jahr = $_POST["jahr"]; $monat = $_POST["monat"]; $tag = $_POST["tag"]; $sql = "INSERT INTO fotos (name,ort,alter,jahr,monat,tag) VALUES ('$name','$ort','$alter','$jahr','$monat','$tag')";
 
- 
    
    Und wozu ist das gut?
- 
    
    also daran lags auch nicht, noch jemand ne idee?
- 
    
    Das Problem liegt an der Syntax folgender Abfrage:
 
 $sql = "INSERT INTO fotos (name,ort,alter,jahr,monat,tag) VALUES ('$name','$ort','$alter','$jahr','$monat','$tag')"; 
 
 Da "alter" ein reserviertes Wort[1] ist, kann die Abfrage nicht richtig ausgef?hrt werden, was die Ausgabe von mysql_error()[2] sicherlich best?tigt.
 
 Um solchen Problemen entgegenzuwirken (und generell vorzubeugen) k?nnen Tabellen-/Spaltennamen in Hochkommata (`spalte`) eingefasst werden.
 
 ?brigens ist es ratsam, Datenbankabfragen auf ihre Ausf?hrung zu ?berpr?fen:
 
 $result = mysql_query($sql); if(FALSE === $result) { printf("Die Abfrage schlug fehl. Mysql meldet: %s", mysql_error()); } else { // weiterer Code }
 
 
 
 [1] http://de.php.net/manual/de/function.mysql-error.php
 [2] http://dev.mysql.com/doc/refman/5.1/de/reserved-words.html
 
 Beitrag ge?ndert am 19.08.2006 18:19 von compactdisc
- 
    
    hmm, daran lag es auch nicht, die connect.inc.php ist auch ok, denn ein anderes skript funzt, ich kapiers nich, da is doch alles ok!!!
- 
    
    Die folgende Fehlermeldung meldet SQL:
 
 Die Abfrage schlug fehl. Mysql meldet:
 Query was empty
 
 Was soll mir das sagen?
- 
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden! lima-city: Gratis werbefreier Webspace für deine eigene Homepage