[PHP/Mysql] "Unknown column in 'field list'

E

ExtiQ

Gast
Problem gelöst, siehe 2. Beitrag und danke an Rakjar(wenn ichs net vorher selbst bemerkt hätte, wär ich dank dir weitergekommen :P )

Hej CB'ler,
mein Problem ist folgendes:
Ich programmiere gerade eine Adminpage für meine Seite.
Auf dieser Seite möchte ich News hinzufügen und löschen, jedoch
gibt es ein Problem mit dem Hinzufügen.
Jedesmal wenn ich Daten aus dem Formular in die DB eintragen möchte kommt der Fehler:
Unknown column 'xx' in 'field list'
Wobei xx hier immer das ersteingetragene(der Titel der News) ist.

Der Code sieht so aus:
Das Formular
Code:
<form action="admin.php?a=iN" method="POST">
<input name="titel" type="text" />
<textarea name="text" cols="5" rows="10"></textarea>
<input type="submit" value="Insert">
</form>
Die Switchabfrage für "?a"
Code:
if(isset($_GET['a']))
{
    switch ($_GET['a'])
    {
       case 'iN':    {
       $sql = "INSERT INTO `news` (`ID`, `titel`, `date`, `text`) VALUES  
       (NULL,".$_POST['titel']." , NOW(), ".$_POST['text'].");";
       f(mysql_query($sql))
       {
          echo "News erfolgreich eingetragen";
          } else {
             DIE(mysql_error());
          }
          break;
       }

       case 'dN':    {
          $sql = "DELETE FROM `news` WHERE `ID` = ".$_POST['id']." LIMIT 1;";
          if(mysql_query($sql))
          {
             echo "News erfolgreich gelöscht";
             }    else {
               DIE(mysql_error());
             }
             break;
        }
   }
}
und die Tabelle sieht so aus:
Feld Typ Null Standard
ID int(11) Ja NULL
titel text Ja
date timestamp Ja CURRENT_TIMESTAMP
text text Ja

Ich weiß nicht, was ich übersehe. Vielen Dank im vorraus

eXtiQ
 
Zuletzt bearbeitet:
Nur ne Vermutung. Aber da alle anderen Felder mit englischen Bezeichnungen daher kommen, könnte es evtl. auch title heißen?

Es ist definitiv kein Logikfehler, sondern nur ein Typo.


Ciao
 
Hab ich auch erst gedacht.. aber so einfach ist es irgendwie leider nicht.
Die einzigen "title" die ich benutze, sind die <title> im <head> :/

-------------------------

Edit: Problem gelöst..
Die mysql query war nicht korrekt.
Also für die, die es wissen wollen:
Anstatt
$sql = "INSERT INTO `news` (`ID`, `titel`, `date`, `text`) VALUES (NULL,".$_POST['titel'].", NOW(), ".$_POST['text'].");";

das hier, mit ' '
$sql = "INSERT INTO `news` (`ID`, `titel`, `date`, `text`) VALUES (NULL,'".$_POST['titel']."', NOW(), '".$_POST['text']."');";
 
Zuletzt bearbeitet:
Es ist wohl immer vorteilhafter alles klein zu schreiben - ich sehe keinen Grund ID in Grossbuchstaben in die Datenbank zu packen. Nimm doch mal kleine Buchstaben...
...das verhindert auch das Aufkommen unnötiger Fehler in der Programmierung.
 
probier mal:

$sql = "INSERT INTO news (ID, titel, date, text) VALUES
('', '".$_POST['titel']."', NOW(), '".$_POST['text']."');";


also titel und text noch mal in '. Dann kann es noch sein, dass date oder text intern von Mysql benutzt werden. Einfach mal umbennen.
 
Unter welchem OS läuft das Ganze denn?

In einer Win32 Umgebung ist Groß- und Kleinschreibung egal, unter Unixoiden wie Linux nicht. Du musst darauf dringend achten, auch die mySQL-Versionen unterscheiden sich in diesem Aspekt. Wie gesagt, der Fehler zeigt eindeutig, dass ein Schreibfehler in deinem Statement vorliegt, und zwar im statischen Teil, sprich der Anweisung bis VALUES. Das Ganze hat nichts mit deinem Formular zu tun. Prüfe in der Hinsicht evtl auch, ob es nicht 2 Tabellen news gibt mit unterschiedlicher Schreibweise. Stammt die Tabelle von Dir oder aus einem fertigen Script?


Ciao
 
Wie schon oben beschrieben, lags an nem statischen Schreibfehler (sch**** ' und " Fehler in mysql querys)

Das ganze is auf XP SP2, Apache2/Mysql/PHP5 und ist ein selbstgeschriebenes Script :)
 
Zurück
Oben