einzelne Textfelder eines Datensatzes erweitern-ist das möglich?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • einzelne Textfelder eines Datensatzes erweitern-ist das möglich?

    Hallo,

    kann man eigentlich einzelne Textfelder eines Datensatzes durch Hinzufügen von Informationen erweitern? z.B. ich habe in einem Textfeld 'Beschreibung' den Text 'alles wird gut' stehen. Nun möchte ich zu diesem Text noch weiteren Text z.B. 'kommt darauf an hinzufügen'. Ist das Möglich? Mit dem Befehl update wird ja der ganze Text des Feldes ersetzt.

    Gruß Ralf

  • #2
    laut manual geht folgendes :
    UPDATE table SET spaltenname=spaltenname+1
    oder
    UPDATE table SET spaltenname=spaltenname*2

    ob das auch für Texte geht ist da nicht erwähnt..

    Kommentar


    • #3
      mysql_query ("insert into Tabelle (ID, Beschreibung) values (1, 'alles wird gut')");
      mysql_query ("update Tabelle set Beschreibung=concat(Beschreibung, 'kommt darauf an') where ID=1");

      s.a. mySQL-manual 6.3.2 String Functions
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar


      • #4
        Hallo ,

        das funktioniert einwandfrei, aber ich glaube ich hab mein Problem etwas unpräzise formuliert: ich habe eine zentrale Datenbank (Mysql) in einem Intranet. Mehrere User können auf ein und diesselbe Tabelle 'Objekte' zugreifen. Die Tabelle hat u.a. das Feld 'Beschreibung', in welches die User über ein Formular und Input-Textfelder Text reinschreiben können. Schreibt z.B. User1 den Text 'alles wird gut' in das Feld 'Beschreibung'der zentralen DB und User2 den Text 'kommt darauf an', dann sollen beide Einträge in dem Feld 'Beschreibung' stehen. Das klappt auch alles mit dem concat - Befehl. Nun fügt User1 seinem Text 'alles wird gut' weiteren Text hinzu, z.B. 'ich hatte Glück' (denn der gesamte Text wird kumuliert ausgelesen aus einer anderen DB) und speichert dies in der zentralen Datenbank ab, dann wird mit concat alles wieder in die zentrale Datenbank gespeichert, also auch der erste Text 'alles wird gut' und dieser ist dann doppelt und bei weiteren Hinzufügen 3xfach, 4xfach usw. Dasselbe gilt für user 2. Ich hoffe ich habe mein Problem nun präzise genug formuliert. Gibt es hierfür eine Lösung? Mit dem Befehl update gehts nicht, da dann z.B. user2 die Einträge von user1 in der zentralen DB überschreibt im Feld Beschreibung.

        Kommentar


        • #5
          wenn du den Text schon per PHP anhängst, kannst du Dir das concat im mySQL natürlich sparen.

          also

          $q = mysql_query ('select Beschreibung from Tabelle where ...');
          list ($textalt) = mysql_fetch_row($q);
          $text=$textalt.$textneu;
          mysql_query ("update Tabelle set Beschreibung=concat(Beschreibung, '$text')");

          hängt natürlich mehrfach an.

          Entweder du machst es per PHP:

          $q = mysql_query ('select Beschreibung from Tabelle where ...');
          list ($textalt) = mysql_fetch_row($q);
          $text=$textalt.$textneu;
          mysql_query ("update Tabelle set Beschreibung='$text');

          oder per mySQL:

          mysql_query ("update Tabelle set Beschreibung=concat(Beschreibung, '$textneu')");

          und jetzt rat mal, welche Version nicht nur kürzer sondern auch schneller ist.
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar

          Lädt...
          X