kleine frage zu sql-statement
am 16.04.2008 - 19:46 Uhr in
Hi,
ich hab noch eine Frage:
Ich bekomme nach dem Senden eines selbsterstellten Formulars folgenden Fehler:
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , 0)' at line 1 query: INSERT INTO exercise (nid,vid,typ,category,howto,things,players) VALUES (8, 8, 0, 0, , , 0) in /opt/lampp/htdocs/drupal/sites/all/modules/exercise/exercise.module on line 54.
Das SQL-Statement sieht so aus:
db_query("INSERT INTO {exercise} (nid,vid,typ,category,howto,things,players) VALUES (%d, %d, %d, %d, %s, %s, %d)", $node->nid, $node->vid, $node->typ, $node->category, $node->howto, $node->things, $node->players);
Liegt also an dem %s. Aber wie heißt es richtig?
Im Formular sind das textareas.
Außerdem wundert es mich, dass bei den anderen Werten 0,0, steht.
Da es sich um eine Drop-Down-Liste und um options handelt, wo keine Nullen vorkommt.
Mfg und Dank im Voraus
Aljoscha
- Anmelden oder Registrieren um Kommentare zu schreiben
wenn das drop-downs sind
am 16.04.2008 - 20:02 Uhr
wenn das drop-downs sind dann wird auch nur ein Zahlenelement zurückgeliefert -> musste %d benutzen.
Du musst die Options anpassen
<?php
$options = array(
'übergebener_string' => 'angzeigter_string'
);
?>
--------------
Mein Blog: www.freeblogger.org: May the source be with you
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dwehner@im.calug.de Warum Jabb
Ich würde
am 16.04.2008 - 20:04 Uhr
Also ich würde zunächst anstatt %s eimal '%s' versuchen. Wenn das auch nicht geht, würde ich das Statement einmal auskommentieren und stattdessen ein
<?php
print $node->things;
?>
da hinein tun, um nachzusehen, ob das wirklich ein String ist. In dieser Weise die Variablen durchtesten; da stimmt sicher irgendwo der erwartete Datentyp nicht.
Danke schon mal. also der
am 16.04.2008 - 20:53 Uhr
Danke schon mal. also der fehler kommt nicht mehr. allerdings werden keine daten gespeichert.
Habe aber auch das Formular geändert.
Ich habe zwei fieldsets angelegt:
$form['meta'] = array(
'#type' => 'fieldset',
'#title' => t('Meta-Data'),
'#tree' => TRUE,
'#weight' => -5
);
...
Und darin die entsprechenden Felder gepackt.
Nun ist die Frage, wie ich die Daten aus dem Formular ansprechen und speichern kann?
Habe unter Meta auch das Feld title gepackt. Dadurch wird der Titel natürlich nicht in der Node-Tabelle gespeichert. Es sieht aber logischer und besser im Formular aus. Kann ich den Title dann in der Node-Tabelle trotzdem speichern?
Danke Aljoscha
PS: Sry, dass aus einer anscheinend kleinen Frage zwei weitere geworden sind.
Okey. Hat sich alles
am 17.04.2008 - 08:17 Uhr
Okey. Hat sich alles erledigt. Dickes DANKE nochmals.