Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Ganzzahl zu Fließkommazahl

Eingetragen von torfnase (1525)
am 23.08.2018 - 16:41 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x oder neuer

Hallo zusammen,
bei einem Datenfeld (Custom Entitys) wird wohl eine Umstellung von Ganzzahl auf Fließkommazahl notwendig sein.
Drupal sieht so etwas ja nicht ohne Weiteres vor.

Wenn ich mir allerdings zwei Datenfelder (Ganzzahl und Fließkommzahl) in der Datenbank anschaue, dann ist die ein int(11) und die andere float.

Nun ist die Frage, ob es vielleicht doch geht, den Typ in der DB direkt zu ändern.

Hat jemand von euch so etwas schon mal gemacht.

Neues Feld anlegen und altes Feld löschen ist aus anderen Gründen keine so gute Lösung für mich.

Gruß
Berthold

‹ Kommentar: Springt bei fehlender Eingabe nicht zur Fehlermeldung Dateiname von Webseiten-Element per Chrome Entwicklertools oder Firebug herausfinden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

nein

Eingetragen von ronald (3857)
am 23.08.2018 - 19:21 Uhr

der strukturelle Unterschied lässt sich nicht wegbügeln,

Du brauchst für die Umstrukturierung beide Felder, ansonsten hast du wilde Zahlen in der Datenbank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Ronald,ich weiß nicht,

Eingetragen von torfnase (1525)
am 23.08.2018 - 19:41 Uhr

Hallo Ronald,
ich weiß nicht, was du damit sagen willst.

Ich hatte mir folgendes vorgestellt:
Es gibt ein Ganzzahlfeld, z.B. field_zahl.
Ich gehe dann in die DB und ändere die Struktur der Tabelle field_data_field_zahl und field_revision_field_zahl z.B. mit dem PHPMyAdmin um von int(11) nach float.

Die Frage ist, ob es das zu weiteren Problemen führt, oder ob Drupal das verkraftet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ohne die Seite zu kennen kann

Eingetragen von Hyp1 (1463)
am 23.08.2018 - 22:54 Uhr

Ohne die Seite zu kennen kann Dir das wohl niemand beantworten.
Grundsätzlich sollte es für Drupal eigentlich keine Probleme machen, da die Arithmetik ja die selbe ist.
Bei Views allerdings kann ich mir vorstellen dass falsch gerechnet wird.
Wenn im PHP Code ein parseInt() vorkommt, dann wird eine Integer ausgegeben/berechnet wird und keine Fliesskommazahl.

Ich würde an Deiner Stelle besser ein neues Fliesskommafeld in Drupal anlegen und dann einfach die Daten des int Feldes
per SQL in die float Tabellen kopieren.

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich werde es mal lokal

Eingetragen von torfnase (1525)
am 23.08.2018 - 23:38 Uhr

ich werde es mal lokal testen.
Es ist schon klar, dass man sämtlichen Programmcode nach der Variable durchsuchen muss und auch alle Views checken muss.

Das ist bei mir aber unproblematisch.

Nach den Tests schreibe ich das noch mal.

Vielen Dank für eure Antworten
Berthold Lausch

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ok ich bin damit durch und es

Eingetragen von torfnase (1525)
am 24.08.2018 - 18:09 Uhr

Ok ich bin damit durch und es funktioniert offenbar einwandfrei.

Folgende Schritte muss man dafür gehen: (field_zahl sei das Feld, um das es geht)

1. in den Tabellen field_data_field_zahl und field_revision_field_zahl die Spaltenstruktur von z.B. int(11) auf float setzen.
2. in der Tabelle: field_config den type auf number_float setzen, stand vorher auf number_integer
In der Tabelle field_config ist auch noch gespeichert, ob ein Dezimalkomma oder ein Dezimalpunkt verwendet werden soll.
Man kann das leicht im Drupal-Backend einstellen unter Felder Bearbeiten. Das ist einfacher als in der field_config die data Spalte zu ändern, die ist nämlich BLOB.

3. und letzte Änderung: Man muss in der Tabelle field_config_instance die Spalte data ändern und das ist auch ein BLOB.
in dieser Spalte ist das Scaling gespeichert, d.h. wie viele Nachkommastellen angezeigt werden. Das Scaling z.B. auf 2 gesetzt und fertig.

So kann man aus einem Ganzzahlfeld ein Fließkommafeld machen.

Die ersten zwei Punkte sind trivial und sehr schnell zu erledigen. Das BLOB abzuändern ist nicht ganz so einfach.
Meine Lösung: Ich habe noch einen alten PHPMyAdmin 3.2.4 (läuft bei mir noch auf einem alten Linux Notebook)
Mit dem kann man BLOB als unserialized bearbeiten, das reicht vollkommen aus, man muss ja nur eine Zahl austauschen (als 0 mach 2)

Hat jemand von euch eine bessere Lösung für das Ändern eines BLOB in einer Mysql-Tabelle ?

Daran wäre ich grundsätzlich interessiert.

Gruß
Berhold

  • Anmelden oder Registrieren um Kommentare zu schreiben

mittlerweile habe ich auch am

Eingetragen von torfnase (1525)
am 24.08.2018 - 23:45 Uhr

mittlerweile habe ich auch am meinem php 7.2.8 die alte Version des phpMyadmin 3.4.2 zum laufen gebracht.
Damit kann ich dann die BLOB Daten einfach bearbeiten.

Warum haben die das wohl in den neuen PHPMyAdmin Versionen herausgenommen ?
Da gibt es zwar bei der Ansicht noch die Möglichkeit, die BLOBs als unserialized anzuschauen, wenn man dann aber den "Bearbeiten" Button klickt, sieht man nur noch eine HEX-Darstellung.
Da kann man dann gar nichts mehr editieren.

Merkwürdig, nicht wahr...

Gruß
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also, ich finde das nicht

Eingetragen von Hyp1 (1463)
am 25.08.2018 - 08:50 Uhr

Also, ich finde das nicht merkwürdig.
Du kannst duch nicht darauf verlassen, das in diesem Feld ein serialisierter String liegt.
Immerhin ist ein BLOB ein binary Large Objekt und KEIN serialisierter String.
Soll heissen MYSQL ist es egal was für eine binaräre Datei in dem Feld hinterlegt wird.

Gruss

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast du Glück gehabt

Eingetragen von ronald (3857)
am 25.08.2018 - 20:32 Uhr

dass die Inhalte serialisiert vorlagen.
Wären sie binär gewesen, hättest du keine Freude daran gehabt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Werner Wie siehst du das

Eingetragen von torfnase (1525)
am 27.08.2018 - 15:52 Uhr

@Werner
Wie siehst du das denn ? .... es geht dabei natürlich um FRIEDA.
Meinst du, dass das problematisch ist ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 3 Stunden
  • Hey danke
    vor 1 Tag 21 Stunden
  • Update: jetzt gibt's ein
    vor 2 Tagen 16 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 1 Stunde
  • Da scheint die Terminologie
    vor 1 Woche 4 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 9 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association