kostenloser Webspace werbefrei: lima-city


Funktion in MySQL-Tabelle

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jonulum

    jonulum hat kostenlosen Webspace.

    Ist es m?glich, dass ich in einer Spalte einer MySQL-Tabelle direkt die aktuelle Summe einiger anderer Spalten speichern kann (mit phpmyAdmin), ohne, dass ich das durch durchlaufen eines PHP-Programmes immer wieder akutalisiern muss?
    Kann ich in der Tabelle eingeben: =Spalte1+Spalte2
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich glaube, ich habe verstanden, was du willst.
    Mein Tipp :
    Probier es doch aus, anstatt hier auf eine Antwort zu warten, denn das geht auf jeden Fall bei einer Spalte und somit w?re es sinnig, wenn es nicht auch bei zweien funktionieren w?rde.

    So, noch ein Tipp :
    Fomuliere deine Beitr?ge bitte demn?chst ein bi?chen deutlicher, denn so muss man schon ein wenig raten und das ist ja auch nicht in deinem Interesse!

    Beitrag ge?ndert am 18.07.2005 23:11 von lucas9991
  4. Autor dieses Themas

    jonulum

    jonulum hat kostenlosen Webspace.

    Ich habe es ausprobiert, doch so wie ich es versucht habe, geht es nicht. (Ich habe es so versucht, wie ich es oben beschrieben habe.) Ich hoffe, es gibt eine L?sung und ebenso fest hoffe ich, dass die jemand hier kennt.
  5. Oben hast du keinen wirklichen Code geschrieben!
    Probs mal so :
    SELECT * FROM `bla` WHERE spalte1 = 'spalte2 + 1';
    Musst du nat?rlich umschreiben!
  6. Autor dieses Themas

    jonulum

    jonulum hat kostenlosen Webspace.

    Scheint wirklich so, als h?tte ich mein Problem nicht richtig beschrieben. Ich m?chte eine Spalte (ich nenne sie mal SUMME) so programmieren, dass sie immer die Summe der Spalten WERT1 und WERT2 darstellt.
  7. O.o?
    Was soll denn das bringen?
    Wie w?rs, wenn du einfach beim auslesen Wert1 und Wert2 zusammenaddierst und dann den dritten Wert ausgibst?
    Oder du schreibst bei deinem "INSERT" Query einfach den dritten Wert dazu.
    Also INSERT INTO `bla` (Wert1, Wert2, Wert1u2) VALUES ('".$wert1."', '".$wert2."', '".$wert1 + $wert2."');

    edit :
    Oder willst du die Daten ?ber den PHPMyAdmin auslesen und reinschreiben?
    Wenn ja, dann Pustekuchen! :p

    Beitrag ge?ndert am 18.07.2005 23:29 von lucas9991
  8. Autor dieses Themas

    jonulum

    jonulum hat kostenlosen Webspace.

    Die Werte bei WERT1 und WERT2 sind dynamisch. Und daher macht es nicht so viel Sinn, wenn ich, um die Summe zu erhalten, zuerst ein PHP-Programm durchlaufen lassen muss, das mir diese Summe ausgibt. Ich m?chte, dass die Summe dauernd auf aktuellem Stand ist. Aber mir scheint langsam, dass das gar nicht m?glich ist.
  9. Jetzt verwirrst du mich noch mehr! ^^
    Wie soll ein Wert dynamisch sein, der konstant in einer Datenbank steht? :confused:
    Du musst das doch irgendwie oder irgendwo eintragen.
    Selbst wenn es ge?ndert wird kannst du den Wert3 doch umschreiben lassen.
    Ich verstehe ehrlich gesagt dein Problem nicht.
    Achja eine weitere M?glichkeit w?re noch einen Cronjob zu benutzten, aber das scheint mir ein bi?chen ?bertrieben.
  10. Autor dieses Themas

    jonulum

    jonulum hat kostenlosen Webspace.

    Klar, wenn es nur zwei Spalten sind, die zusammengez?hlt werden m?ssen, ist es leicht machbar, wenn man (wenn sich einer davon ver?ndert) gleich auch noch die Summe neu berechnet und sie neu speichert.
    Da ich es jedoch mit wesentlich mehr Spalten zu tun habe, und sich die in recht vielen verschiedenen PHP-Programmen ver?ndern k?nnen, habe ich gehofft, die Tabelle k?nne mir diese Arbeit direkt ?bernehmen (sonst muss ich in allen Programmen diese Ver?nderung einpflanzen). Aber ich werde nun nach einer anderen L?sung suchen, um diese Ver?nderung eben nicht in allen Programmen machen zu m?ssen.
  11. g*********b

    Hi,

    ein Grundsatz der "Datenb?nkerei" ist, dass Werte, die aus anderen Werten in irgendeiner Form ermittelbar sind, z.B. durch Addieren, multiplizieren oder weiss der Geier was, in einer Tabelle nixxxx zu suchen haben!!!!

    Also, wenn du die Summe zweier Spaltenwerte haben willst schreibst Du einfach:

    SELECT (spalte1 + spalte2) AS 'Summe'
    FROM meinetabelle
    ...

    Solltest Du dennoch unbedingt eine Spalte haben wollen, in der "dynamisch" aktualisierte Werte stehen, musst Du einen sog. Trigger setzen, der bei jedem Insert und update die entsprechende Spalte aktualisiert. mysql bietet solche Trigger allerdings erst in den neuesten Versionen an.

    Ich weiss nicht, ob das hier schon geht...

    mehr dazu findest Du hier:

    http://dev.mysql.com/doc/mysql/en/triggers.html

    FF
    WS
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!