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