Haumis wbb hilfe (http://haumis-wbb-hilfe.de/wbb2/index.php)
- WBBLITE (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=67)
-- Es klappt nicht (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=71)
--- Eintragen und bearbeiten in einem (http://haumis-wbb-hilfe.de/wbb2/thread.php?threadid=1857)


Geschrieben von No Good No Evil am 04.01.2012 um 21:24:

  Eintragen und bearbeiten in einem

So dann muss ich leider hier auch mal ein Thema eröffnen da ich gerade echt nicht weiter weiß. Ich habe in meiner Datenbank eine neue Tabelle angelegt mit dem Namen bbX_style_user mit den Feldern id, userid, banner, titel, untertitel, linkname, lyrics. Das ganze läuft über eine eigene PHP Datei. Jetzt habe ich das Problem das wenn einer einen Style anlegen soll über den Link den man im UserCP findet kann man alles soweit eintragen und dieser Eintrag wird auch gespeichert nur wenn ich das jetzt bearbeiten will zum Beispiel das ich ein neues Bild einfügen möchte legt er immer wieder eine neue Zeile in der Tabelle an statt die vorhandene zu bearbeiten. ich bin mir jetzt wirklich nicht sicher ob mein Eintrag den ich in der style_user.php gemacht habe richtig ist.

Den er sieht jetzt so aus
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
if ($action == 'style') {
 if(isset($_POST['send'])) {
     if(isset($_POST['banner'])) $banner trim($_POST['banner']);
     if(isset($_POST['titel'])) $titel trim($_POST['titel']);
     if(isset($_POST['untertitel'])) $untertitel trim($_POST['untertitel']);
     if(isset($_POST['linkname'])) $linkname trim($_POST['linkname']);
     if(isset($_POST['benutzertext'])) $benutzertext trim($_POST['benutzertext']);
  
    $db->query("INSERT INTO bb".$n."_style_user (id,userid,banner,titel,untertitel,linkname,benutzertext)
    VALUES (NULL,'$wbbuserdata[userid]','".addslashes(htmlspecialchars($banner))."',
            '".addslashes(htmlspecialchars($titel))."','".addslashes(htmlspecialchars($untertitel))."',
            '".addslashes(htmlspecialchars($linkname))."','".addslashes(htmlspecialchars($benutzertext))."')");
    
    $db->query("UPDATE bb".$n."_style_user
               SET banner='".addslashes(htmlspecialchars($banner))."', 
               titel='".addslashes(htmlspecialchars($titel))."', untertitel='".addslashes(htmlspecialchars($untertitel))."',
               linkname='".addslashes(htmlspecialchars($linkname))."',benutzertext='".addslashes(htmlspecialchars($benutzertext))."'
               WHERE userid = '$wbbuserdata[userid]'");
            header("Location: /style_user.php?action=style");
 exit();
    }
  
  else {
     $felder $db->query_first("SELECT * FROM bb".$n."_style_user WHERE userid='$wbbuserdata[userid]'");
  $banner $felder['banner'];
  $titel $felder['titel'];
  $untertitel $felder['untertitel'];
  $linkname $felder['linkname'];
  $benutzertext $felder['benutzertext'];
  }


Mit dem INSERT INTO soll er ja was neues erstellen in der Datenbank und mit dem UPDATE soll er den vorhandenen Eintrag der zu diesem User gehört bearbeiten. Hätte man einen Tipp für mich was ich da jetzt verbaut habe oder ob da noch etwas fehlt?

Liebe Grüße



Geschrieben von haumi am 04.01.2012 um 22:09:

 

Uppsala, das ist mir heute etwas spät geworden um da mal konkret nachzusehen.
Wird jedoch morgen früh erledigt.
Wie du jedoch schon schriebst, wird mit INSERT INTO ein neuer Datensatz angelegt und mit UPDATE ein schon vorhandener geändert.
Ich denke es liegt somit nicht am php-script sondern am Formular was die Daten absendet.
Man mus ja die Auswahl treffen NEU z. B. mit action = new und ÄNDERN mit action = change.
Wenn man bei beiden Nichts mit auf en Weg gibt, wird immer das erstprogrmmierte genommen also Neuer Datensatz.

Aber schau mal was bei dir ist.

Laut php-script kommt nämlich nicht die Meldung was das Script machen soll.

Zum php-Script noch etwas:

Die Variable action aus dem Formular abfragen:

if (isset($_POST['action']) $action = $_POST['action'];

dann:

$db->query("INSERT INTO bb".$n."_style_user ...

hier vor sollte stehen: if($action == new) {

und hiervor if($action == change) {

$db->query("UPDATE bb".$n."_style_user

Das ist KEIN vollständiges Script sondern NUR ein Hinweis

LG
haumi



Geschrieben von No Good No Evil am 06.01.2012 um 00:07:

 

Vielen dank, dass hat mir sehr weiter geholfen :)


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH