Thread Info
Wer ist hier? 1 Gäste
Neues Feld im Forum - benötige Hilfe bei Speicherung in DB
|
|
Catzenjaeger |
Geschrieben am 21.10.2015 00000010 07:05
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 14 seconds |
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 Download Code if (isset($_POST['save_cat'])) { |
|
|
SC-Ad-Bot | Advertisement |
| |
emblinux |
Geschrieben am 21.10.2015 00000010 11:46
|
Seiten Administrator Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 16 years 1 months 2 weeks 18 days 10 hours 30 minutes 57 seconds |
Welches Bild ??? Was für ein Datentyp hat denn das Feld in der Datenbank? Im Anhang findet man lediglich die Language-Datei für die Forum-Administration. Die wird hier kaum helfen. Außerdem: Für eine saubere Programmierung sollte man das Feld auch analog den anderen Feldern benennen. Also nicht preferred sondern forum_preferred. Aber das nur nebenbei. Empfehlung: Den Datentyp unsigned int wählen mit einer Länge von 1 (ein Zeichen). Dann schreibst du für NEIN eine 0 rein und für JA eine 1. Das brauchst du dann im PHP-Code nur entsprechend umsetzen. Das spart Speicher in der Datenbank. Denn Texte verbrauchen mehr Speicher als kleine Integer-Werte. |
|
|
Catzenjaeger |
Geschrieben am 21.10.2015 00000010 11:59
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 15 seconds |
Meine DB Typ: TINYINT Lange/Wert: 1 Standard: wie definiert / 0 Kollation: - Attribute: - Null: - im Anhang habe ich alles zusammengepackt Sorry der neue upload wird immer übersxchreiben deshalb war nur das letzte dran Bearbeitet von Catzenjaeger am 21.10.2015 00000010 12:03 |
|
|
emblinux |
Geschrieben am 21.10.2015 00000010 12:07
|
Seiten Administrator Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 16 years 1 months 2 weeks 18 days 10 hours 30 minutes 57 seconds |
Was mir gerade noch auffält. Zitat Was ich geändert habe Code Download Code 1.) ...... (forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators,...... ziehmlich am Ebde vom Code habe ich daas geändert: Code Download Code 1.) ....(forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators, ... Den Datentypen legst du als TINYINT fest, speicherst aber einen Character-Wert. Richtig sollte es so lauten: Code Download Code 1.) ...... (forum_cat, forum_name, preferred, forum_order, forum_description, forum_moderators,...... oder halt eine 1 für ja. Wenn du keinen Wert für dieses Feld speichern möchtest, dann lass es einfach weg. Sowohl bei der Selection (1) als auch bei den Values (2). |
|
|
Catzenjaeger |
Geschrieben am 21.10.2015 00000010 12:19
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 15 seconds |
ok habs versucht aber es schreibt bnichts rein habe nach deinen anraten auch die spalte umbenannt :) das hier ist das Feld was ich mitgeben will: Code Download Code echo "<select name='preferred' class='textbox' style='width:300px'> das hier wo die Daten in DB geschreiben werden ..aber es geht leider noch nicht Zitat $result = dbquery("INSERT INTO ".DB_FORUMS." (forum_cat, forum_name, forum_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', '$forum_preferred','$cat_order', '', '', '0', '0', '0', '0', '0', '0', '0', '0')"); das habe ich add: $forum_preferred = $data['forum_preferred']; Hier der Auszug aus der forums.php Code Download Code if (isset($_POST['save_cat'])) { Bearbeitet von Catzenjaeger am 21.10.2015 00000010 12:33 |
|
|
emblinux |
Geschrieben am 21.10.2015 00000010 12:39
|
Seiten Administrator Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 16 years 1 months 2 weeks 18 days 10 hours 30 minutes 57 seconds |
Also erst einmal speicherst du nicht den übergebenen Wert deiner Auswahlbox (preferred). Weiterhin hast du bei deinem 2. Statement mehr Values zum einfügen als angegebene Felder. füge hinter: Code Download Code $cat_name = trim(stripinput($_POST['cat_name'])); folgendes ein: Code Download Code $preferred = stripinput($_POST['preferred']); Dann änderst du das 1. Insert-Statement wie folgt ab: Code Download Code $result = dbquery("INSERT INTO ".DB_FORUMS." (forum_cat, forum_name, forum_preferred, forum_order, forum_description, forum_moderators, forum_access, forum_post, forum_reply, forum_poll, forum_vote, forum_attach, forum_lastpost, forum_lastuser) Dann fügst du hinter: Code Download Code $forum_cat = isnum($_POST['forum_cat']) ? $_POST['forum_cat'] : 0; nochmal folgendes ein: Code Download Code $preferred = stripinput($_POST['preferred']); Und änderst dann das 2. Insert-Statement wie folgt ab: Code Download Code $result = dbquery("INSERT INTO ".DB_FORUMS." (forum_cat, forum_name, forum_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) Prüfe aber bitte nochmal alles auf Syntax, da ich das einfach nur so im Editor angepasst habe. Manchmal hilft es, wenn man sich das SQL-Statement erst ineine Variable schreibt. Dann kann man sich das einfach nochmal ausgeben lassen. Beispiel: Code Download Code $sql = "Select * from ".DB_FORUMS." "; So kann man sich das fertige SQL nochmal anschauen. Wenn alles IO, dann entfernt man einfach die Ausgabe von $sql. |
|
|
Catzenjaeger |
Geschrieben am 21.10.2015 00000010 12:47
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 15 seconds |
super die DB wird schon einmal befüllt ... du bist der held des Tages :) allerdings fehlt noch Wert der zrückgegeben wird wenn die Kategorie noch einmal bearbeite im Adminbereich. Da kommt jetzt ein Nein zurück obwohl einen 1 in der DB (also ein JA) steht. .. irgednwas habe ich noch übersehen ist doch eigentlich richtig: Code Download Code $result = dbquery("UPDATE ".DB_FORUMS." SET forum_name='".$forum_name."', forum_cat='".$forum_cat."', forum_preferred='".$preferred."', 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']."'"); Bearbeitet von Catzenjaeger am 21.10.2015 00000010 12:51 |
|
|
emblinux |
Geschrieben am 21.10.2015 00000010 12:51
|
Seiten Administrator Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 16 years 1 months 2 weeks 18 days 10 hours 30 minutes 57 seconds |
eher so: Code Download Code $result = dbquery("UPDATE ".DB_FORUMS." SET forum_name='".$forum_name."', forum_cat='".$forum_cat."', forum_preferred=".$preferred.", 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']."'"); Vorraussetzung ist aber, dass die Variable $preferred auch korrekt gesetzt wird. Also der Wert aus der entsprechenden POST-Variable gelesen wird. |
|
|
Catzenjaeger |
Geschrieben am 21.10.2015 00000010 12:55
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 15 seconds |
ne das war sleider nicht ... bleibt auf nein stehen $forum_preferred = $data['forum_preferred']; ich habe so das gefühl hier muss noch was rein: Code Download Code } else { Bearbeitet von Catzenjaeger am 21.10.2015 00000010 12:57 |
|
|
emblinux |
Geschrieben am 21.10.2015 00000010 13:03
|
Seiten Administrator Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 16 years 1 months 2 weeks 18 days 10 hours 30 minutes 57 seconds |
Schau dir deinen Code nochmal genauer an. Hier der entsprechende Auszug, wo noch was fehlt. Code Download Code if ($forum_name != "") { Du hast dort ein Update-Statement, wo du auch das Feld forum_preferred mit $forum_preferred setzen möchtest. Aber diese Variable ist an dieser Stelle noch nicht gefüllt. Füge da mal nach Code Download Code $forum_merge = (isset($_POST['forum_merge']) && isnum($_POST['forum_merge']) ? $_POST['forum_merge'] : 0); noch folgendes ein: Code Download Code $forum_preferred = (isset($_POST['preferred']) && isnum($_POST['preferred']) ? $_POST['preferred'] : 0); Und dann noch das Update-Statement anpassen: Code Download Code $result = dbquery("UPDATE ".DB_FORUMS." SET forum_name='".$forum_name."', forum_cat='".$forum_cat."', forum_preferred=".$forum_preferred.", 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']."'"); Schau mal ob du noch irgendwo solche Stellen hast. Die musst du noch anpassen. |
|
|
Catzenjaeger |
Geschrieben am 21.10.2015 00000010 13:13
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 15 seconds |
Danke .. das ist ganz schön kompliziert. geht leider immer noch nicht. Steht immer noch NEIN da obwohl JA Ich habe jetzt nichts gefunden wo noch was fehlt das einzigste wo ich vermute hier: (Update - brachte auch nichts ) } else { $cat_name = ""; $cat_order = ""; $cat_title = $locale['400']; $cat_action = FUSION_SELF.$aidlink; $forum_name = ""; $forum_preferred = ""; $forum_description = ""; $forum_cat = 0; $forum_order = ""; $forum_access = 0; $forum_post = 0; $forum_reply = 0; $forum_attach = 0; $forum_attach_download = 0; $forum_poll = 0; $forum_vote = 0; $forum_merge = 0; $forum_title = $locale['500']; $forum_action = FUSION_SELF.$aidlink; } Ich hänge die komplette Datei noch einmal an stand 16:55 es geht nicht -- blkeibt immer nein stehen damn Bearbeitet von Catzenjaeger am 21.10.2015 00000010 13:57 |
|
|
emblinux |
Geschrieben am 22.10.2015 00000010 06:17
|
Seiten Administrator Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 16 years 1 months 2 weeks 18 days 10 hours 30 minutes 57 seconds |
Ich habs mir mal angesehen und etwas überarbeitet. Komisch war schon, das dur die Variable $wahl verwendest aber nie setzt. Ergo kann die Variable $wahl nie 0 oder 1 sein und er zeigt in der Auswahlbox immer den ersten Wert aus der Liste an. Im Anhang findest dun die überarbeitete Version. Bitte nochmal prüfen, da ich lediglich mit einem einfachen Editor die Anpassungen vorgenommen habe. |
|
|
Catzenjaeger |
Geschrieben am 22.10.2015 00000010 06:28
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 15 seconds |
Vielen Dank .. leider steht immer noch da NEIN. Sowohl wenn ich einen Kategorie anlege (also direkt nach klick in der Administration auf FORUM) als auch beim bearbeiten einer Kategorie wenn ich auf BEARBEITEN klicke. Das mit "wahl" hatte ich auch gesehn und gefixt aber daran lags nicht Ein Fehler wird mir noch angezeigt Fehler: Undefined index: forum_preferred Zeile: 190 Datei: adb/administration/forums.php 185 if (dbrows($result)) { 186 $data = dbarray($result); 187 $forum_name = $data['forum_name']; 188 $forum_description = $data['forum_description']; 189 $forum_cat = $data['forum_cat']; 190 $forum_preferred = $data['forum_preferred']; 191 $forum_access = $data['forum_access']; 192 $forum_post = $data['forum_post']; 193 $forum_reply = $data['forum_reply']; 194 $forum_attach = $data['forum_attach']; 195 $forum_attach_download = $data['forum_attach_download']; 196 $forum_poll = $data['forum_poll']; 197 $forum_vote = $data['forum_vote']; 198 $forum_merge = $data['forum_merge']; 199 $forum_title = $locale['501']; |
|
|
emblinux |
Geschrieben am 22.10.2015 00000010 07:00
|
Seiten Administrator Beiträge: 3813 Registriert am: 04.10.08 Fusioneer: 16 years 1 months 2 weeks 18 days 10 hours 30 minutes 57 seconds |
Das darüberliegende Select-Statement muss natürlich noch um das neue Feld erweitert werden. Code Download Code $result = dbquery( |
|
|
Catzenjaeger |
Geschrieben am 22.10.2015 00000010 07:00
|
Jung Mitglied Beiträge: 10 Registriert am: 28.11.12 Fusioneer: 11 years 11 months 3 weeks 24 days 9 hours 32 minutes 15 seconds |
ich habe es gleuabe ich gefunden-da fehlte einen Abfrage DXanke für deine Hilfe ... kann man eigentlich bei einer JA/NEIN Option auch ein Feld "--Bitte auswählen -- standartmässig anzeigen? welchen wert müßte man dan nehmen? -1? weil jetzt wird immer NEIN als Standart angezeigt .. ist im prinzip richtig da ich das als Stanard eintragen alssen will falls man ncihts wählt weil somnst müsste ich eine Fehlerkorrektut einbauenen was im Moment schwierig wäre .. denn sonst kommt das script durcheinander } elseif (isset($_GET['t']) && $_GET['t'] == "forum" { $result = dbquery( "SELECT forum_name, forum_description, forum_cat, forum_moderators, forum_access, forum_preferred, forum_post, forum_reply, forum_attach, forum_attach_download, forum_poll, forum_vote, forum_merge FROM ".DB_FORUMS." WHERE forum_id='".$_GET['forum_id']."' LIMIT 1" ); if (dbrows($result)) { $data = dbarray($result); $forum_name = $data['forum_name']; $forum_description = $data['forum_description']; $forum_cat = $data['forum_cat']; $forum_preferred = $data['forum_preferred']; $forum_access = $data['forum_access']; $forum_post = $data['forum_post']; $forum_reply = $data['forum_reply']; $forum_attach = $data['forum_attach']; $forum_attach_download = $data['forum_attach_download']; $forum_poll = $data['forum_poll']; $forum_vote = $data['forum_vote']; $forum_merge = $data['forum_merge']; $forum_title = $locale['501']; $forum_action = FUSION_SELF.$aidlink."&action=edit&forum_id=".$_GET['forum_id']."&t=forum"; $cat_title = $locale['400']; $cat_action = FUSION_SELF.$aidlink; } else { redirect(FUSION_SELF.$aidlink); |
|
Springe ins Forum: |
Ähnliche Themen
Thema | Forum | Antworten | Letzter Beitrag |
---|---|---|---|
Bitte um Hilfe. | Allgemeine Support Fragen | 5 | 12.04.2018 00000004 17:57 |
Erbitte Hilfe | Allgemeine Support Fragen | 27 | 09.04.2017 00000004 08:10 |
Hilfe MWN Geschenke System fehler | Infusionen | 2 | 27.12.2016 00000012 20:11 |
Breuchte ma eure hilfe bei der suche einer seite | Games, Spiele & Co. | 2 | 18.09.2016 00000009 15:23 |
Forum | Allgemeine Diskussionen | 1 | 12.01.2014 00000001 15:35 |