Thread Verfasser: Catzenjaeger
Thread ID: 657
Thread Info
Es gibt 3 Beiträge zu diesem Thema, und es wurde 2078 Mal angesehen.  Ausserdem wurden Dateien angehängt.
 Thema drucken
Neues Feld im Forum - benötige Hilfe bei Speicherung in DB
Catzenjaeger
ich benötige ein neues Feld im Forum beim anlegen einer Forum-Kategorie. Das habe ich bereits umgesetzt und das Feld ist auch genau da wo ich es haben will.
(administration/forums.php) In der Datenbank habe ich auch eine entsprechenden Spalte hinzugefügt (heisst "preferred" sieheh Bild)

mein problem ist, das die Datenbank nicht mit dem Wert den ich dort angebe (ja / nein) befüllt wird. Ich habe die entprechenden Stellen im Code dort wo in die DB geschreiben wird bereits abgeändert aber da muss ein Fehler sein.

Was ich geändert habe
1.) ...... (forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators,......
2.) ...VALUES ('0', '$cat_name', '','$cat_order', '', '', '0', '0', '0', '0', '0', '0', '0', '0')"); ...

ziehmlich am Ebde vom Code habe ich daas geändert:

1.) ....(forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators, ...
2.) ....VALUES ('".$forum_cat."', '".$forum_name."', '0','".$forum_order."', '".$forum_description."', '103', '101', '101', '101', '0', '0', '0', '0', '0', '0', '0')");...

im Anhang meine komplette administration/forums.php
Kann jemand helfen?

hier der Auszug aus dem Code:
Code
if (isset($_POST['save_cat'])) {

   $cat_name = trim(stripinput($_POST['cat_name']));

   if ($cat_name != "") {

      if ((isset($_GET['action']) && $_GET['action'] == "edit") && (isset($_GET['forum_id']) && isnum($_GET['forum_id'])) && (isset($_GET['t']) && $_GET['t'] == "cat")) {

         $result = dbquery("UPDATE ".DB_FORUMS." SET forum_name='$cat_name' WHERE forum_id='".$_GET['forum_id']."'");

         redirect(FUSION_SELF.$aidlink."&status=savecu");

      } else {

         $cat_order = isnum($_POST['cat_order']) ? $_POST['cat_order'] : "";

         if(!$cat_order) $cat_order=dbresult(dbquery("SELECT MAX(forum_order) FROM ".DB_FORUMS." WHERE forum_cat='0'"),0)+1;

         $result = dbquery("UPDATE ".DB_FORUMS." SET forum_order=forum_order+1 WHERE forum_cat='0' AND forum_order>='$cat_order'");

         $result = dbquery("INSERT INTO ".DB_FORUMS." (forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators, forum_access, forum_post, forum_reply, forum_poll, forum_vote, forum_attach, forum_lastpost, forum_lastuser) VALUES ('0', '$cat_name', '','$cat_order', '', '', '0', '0', '0', '0', '0', '0', '0', '0')");

         redirect(FUSION_SELF.$aidlink."&status=savecn");

      }

   } else {

      redirect(FUSION_SELF.$aidlink."&status=savect");

   }

} elseif (isset($_POST['save_forum'])) {

   $forum_name = trim(stripinput($_POST['forum_name']));

   $forum_description = trim(stripinput($_POST['forum_description']));

   $forum_cat = isnum($_POST['forum_cat']) ? $_POST['forum_cat'] : 0;

   if ($forum_name != "") {

      if ((isset($_GET['action']) && $_GET['action'] == "edit") && (isset($_GET['forum_id']) && isnum($_GET['forum_id'])) && (isset($_GET['t']) && $_GET['t'] == "forum")) {

         $forum_mods = $_POST['forum_mods'];

         $forum_access = isnum($_POST['forum_access']) ? $_POST['forum_access'] : 0;

         $forum_post = isnum($_POST['forum_post']) ? $_POST['forum_post'] : 0;

         $forum_reply = isnum($_POST['forum_reply']) ? $_POST['forum_reply'] : 0;

         $forum_attach = isnum($_POST['forum_attach']) ? $_POST['forum_attach'] : 0;

         $forum_attach_download = isnum($_POST['forum_attach_download']) ? $_POST['forum_attach_download'] : 0;

         $forum_poll = isnum($_POST['forum_poll']) ? $_POST['forum_poll'] : 0;

         $forum_vote = isnum($_POST['forum_vote']) ? $_POST['forum_vote'] : 0;

         $forum_merge = (isset($_POST['forum_merge']) && isnum($_POST['forum_merge']) ? $_POST['forum_merge'] : 0);

         $result = dbquery("UPDATE ".DB_FORUMS." SET forum_name='".$forum_name."', forum_cat='".$forum_cat."', forum_description='".$forum_description."', forum_moderators='".$forum_mods."', forum_access='".$forum_access."', forum_post='".$forum_post."', forum_reply='".$forum_reply."', forum_attach='".$forum_attach."', forum_attach_download='".$forum_attach_download."', forum_poll='".$forum_poll."', forum_vote='".$forum_vote."', forum_merge='".$forum_merge."' WHERE forum_id='".$_GET['forum_id']."'");

         redirect(FUSION_SELF.$aidlink."&status=savefu");

      } else {

         $uniqueCheck = dbcount("(forum_id)", DB_FORUMS, "forum_cat='".$forum_cat."' AND forum_name='".$forum_name."'");

         if ($uniqueCheck != 0) { redirect(FUSION_SELF.$aidlink."&status=saveft"); }

         $forum_order = isnum($_POST['forum_order']) ? $_POST['forum_order'] : "";

         if(!$forum_order) $forum_order=dbresult(dbquery("SELECT MAX(forum_order) FROM ".DB_FORUMS." WHERE forum_cat='$forum_cat'"),0)+1;

         $result = dbquery("UPDATE ".DB_FORUMS." SET forum_order=forum_order+1 WHERE forum_cat='$forum_cat' AND forum_order>='$forum_order'");

         $result = dbquery("INSERT INTO ".DB_FORUMS." (forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators, forum_access, forum_post, forum_reply, forum_attach, forum_attach_download, forum_poll, forum_vote, forum_lastpost, forum_lastuser, forum_merge) VALUES ('".$forum_cat."', '".$forum_name."', '0','".$forum_order."', '".$forum_description."', '103', '101', '101', '101', '0', '0', '0', '0', '0', '0', '0')");

         redirect(FUSION_SELF.$aidlink."&status=savefn");
Catzenjaeger hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
 
matze_two
welchen Typ hat du in der datenbankverwaltung gesetzt? Und was soll das Feld bewirken? Mehr Info bitte.
So wie ich dich verstehe möchtest du Ja und Nein steuern können ..wollen.

Dann musst du auch den Typ: TYNINT nehmen
 
SuNflOw
Hallo,
was ich sehen kann ist dass du bei dem Anlegen einer neuen Kategorie den Wert von preferred auf 0 setzt. Dies sehe ich auch so in der Datenbank.

Was du aber anscheinend machen magst ist wenn man "ja" angibt dass dann auch eine 1 in der Datenbank steht.

Dafür musst du deinem select element einen Namen ("forum_preffered") geben.
Den Optionen gibst du noch value 0 bei nein und 1 bei ja. Danach kannst du dann beim Speichern diese Daten auslesen:

Unter:
Code
 $forum_description = trim(stripinput($_POST['forum_description']));

musst du einfügen:
Code
 $forum_preffered = isset($_POST['forum_preffered']) && isnum($_POST['forum_preffered']) && $_POST['forum_preffered'] < 2 ? $_POST['forum_preffered'] : 0;

Dann die Teile:
Code
 $result = dbquery("INSERT INTO ".DB_FORUMS." (forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators, forum_access, forum_post, forum_reply, forum_attach, forum_attach_download, forum_poll, forum_vote, forum_lastpost, forum_lastuser, forum_merge) VALUES ('".$forum_cat."', '".$forum_name."', '".$forum_preffered."','".$forum_order."', '".$forum_description."', '103', '101', '101', '101', '0', '0', '0', '0', '0', '0', '0')");

und auch beim Editieren:
Code
$result = dbquery("UPDATE ".DB_FORUMS." SET forum_name='".$forum_name."', forum_cat='".$forum_cat."', forum_description='".$forum_description."', preffered='".$forum_preffered."', forum_moderators='".$forum_mods."', forum_access='".$forum_access."', forum_post='".$forum_post."', forum_reply='".$forum_reply."', forum_attach='".$forum_attach."', forum_attach_download='".$forum_attach_download."', forum_poll='".$forum_poll."', forum_vote='".$forum_vote."', forum_merge='".$forum_merge."' WHERE forum_id='".$_GET['forum_id']."'");


Ist aus dem Kopf kann sein dass ein Schreibfehler drin ist. Aber das System sollte klar sein.

- SuN
________________________________________________
I got my swim trunks and my Flippie-Floppies *-*
 
Springe ins Forum: