Ankündigung

Einklappen
Keine Ankündigung bisher.

Statt negativem Wert wird -0.0 ausgegeben

Einklappen

Neue Werbung 2019

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

  • Statt negativem Wert wird -0.0 ausgegeben

    Hallo zusammen,

    ich bin Anfänger und gerade dabei mich wieder intensiver mit der Materie MySQL & PHP zu beschäftigen. Allerdings stehe ich nun vor einem Problem, weswegen ich eure Hilfe bräuchte (Google & Co konnten mir nicht weiterhelfen).

    In meiner Datenbank sind negative Werte vorhanden. Wenn ich nun versuche diese mittels folgendem Code abzurufen, erhalte ich nur -0.0.

    // heutigen tiefsten Taupunkt auslesen
    $min_taupunkt = "SELECT a.* FROM wetter a JOIN (select datum, min(taupunkt) AS taupunkt_min from wetter GROUP BY datum) b on b.datum = a.datum and b.taupunkt_min = a.taupunkt WHERE a.datum = '$today' LIMIT 1";
    foreach ($db->query($min_taupunkt) as $taupunkt_a_min) {

    echo $taupunkt_a_min['taupunkt'];
    echo " ";
    echo $taupunkt_a_min['datum'];
    echo " "; echo $taupunkt_a_min['uhrzeit'];
    echo " tiefster Taupunkt<bR>";
    }
    Wie bekomme ich es hin, dass der vollständige negative Wert dargestellt wird.

    Besten Dank vorab.

    Viele Grüße
    Steven

  • #2
    Bitte Tabellenstruktur inkl. Testdaten als SQL-Code posten.

    Desweiteren solltest du beachten kein SELECT * zu verwenden. Vor allem nicht im Zusammenhang mit GROUP BY.

    Kommentar


    • #3
      Hallo hellbringer,

      vielen Dank für deine Antwort und dem Hinweis mit dem *. Die SQL-Struktur ist folgende:

      Code:
      --
      -- Tabellenstruktur für Tabelle `wetter`
      --
      
      CREATE TABLE `wetter` (
        `id` int(11) NOT NULL,
        `datum` text  NOT NULL,
        `uhrzeit` time NOT NULL,
        `temp_i` text NOT NULL,
        `temp_a` text NOT NULL,
        `windchill_x` text NOT NULL,
        `feuchte_i` smallint(6) NOT NULL,
        `feuchte_a` smallint(6) NOT NULL,
        `feuchte_2` smallint(6) NOT NULL,
        `luftdruck` text NOT NULL,
        `regen` text NOT NULL,
        `wind` text NOT NULL,
        `richtung` text NOT NULL,
        `sonne` text NOT NULL,
        `regen_zeit` text NOT NULL,
        `taupunkt` text NOT NULL,
        `windchill` text NOT NULL,
        `timestamp` timestamp NULL DEFAULT NULL COMMENT 'Datum und Uhrzeit als Timestamp'
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
      
      --
      -- Daten für Tabelle `wetter`
      --

      Dazu noch ein paar Beispielwerte:

      Code:
      INSERT INTO `wetter` (`id`, `datum`, `uhrzeit`, `temp_i`, `temp_a`, `windchill_x`, `feuchte_i`, `feuchte_a`, `feuchte_2`, `luftdruck`, `regen`, `wind`, `richtung`, `sonne`, `regen_zeit`, `taupunkt`, `windchill`, `timestamp`) VALUES
      (2332, '18.02.2018', '10:35:00', '19.2', '4.0', '0.0', 42, 73, 0, '1023.7', '0.000', '0.0', '200', '0', '0', '-0.4', '4.0', '2018-02-18 09:40:01'),
      (2333, '18.02.2018', '10:40:00', '19.2', '4.1', '0.0', 42, 72, 0, '1023.7', '0.000', '3.2', '200', '0', '0', '-0.5', '4.1', '2018-02-18 09:45:01'),
      (2334, '18.02.2018', '10:45:00', '19.3', '4.2', '0.0', 42, 72, 0, '1023.8', '0.000', '0.0', '200', '0', '0', '-0.4', '4.2', '2018-02-18 09:50:01'),
      (2335, '18.02.2018', '10:50:00', '19.3', '4.2', '0.0', 42, 72, 0, '1023.8', '0.000', '0.0', '358', '0', '0', '-0.4', '4.2', '2018-02-18 09:55:01'),
      (2336, '18.02.2018', '10:55:00', '19.3', '4.3', '0.0', 42, 72, 0, '1023.9', '0.000', '6.1', '358', '0', '0', '-0.3', '4.3', '2018-02-18 10:00:01'),
      (2337, '18.02.2018', '11:00:00', '19.2', '4.2', '0.0', 40, 71, 0, '1023.8', '0.000', '4.3', '358', '0', '0', '-0.6', '4.2', '2018-02-18 10:05:01'),
      (2338, '18.02.2018', '11:05:00', '19.1', '4.2', '0.0', 39, 71, 0, '1023.8', '0.000', '0.0', '20', '0', '0', '-0.6', '4.2', '2018-02-18 10:10:02'),
      Ganz am Ende findet sich dann noch dieses:

      Code:
      --
      -- Indizes der exportierten Tabellen
      --
      
      --
      -- Indizes für die Tabelle `wetter`
      --
      ALTER TABLE `wetter`
        ADD PRIMARY KEY (`id`),
        ADD UNIQUE KEY `Zeit` (`datum`(20),`uhrzeit`);
      
      --
      -- AUTO_INCREMENT für exportierte Tabellen
      --
      
      --
      -- AUTO_INCREMENT für Tabelle `wetter`
      --
      ALTER TABLE `wetter`
        MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2442;
      COMMIT;
      
      /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
      /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
      /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

      Die Daten werden von einer csv-Datei importiert.

      Kommentar


      • #4
        Zitat von hellbringer Beitrag anzeigen
        Desweiteren solltest du beachten kein SELECT * zu verwenden. Vor allem nicht im Zusammenhang mit GROUP BY.
        Hat er nicht.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Verwende korrekt Datentypen. TEXT für Meßwerte ist schlicht falsch.
          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

          Kommentar


          • #6
            Ebenso für Datum. Einen PK kann ich nicht sehen. MyISAM ist Technologie des letzten Jahrtausends.
            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

            Kommentar


            • #7
              Zitat von akretschmer Beitrag anzeigen
              Verwende korrekt Datentypen. TEXT für Meßwerte ist schlicht falsch.
              Das wars. Vielen Dank für deine Hilfe.

              Ich muss mich in die ganze Sache erstmal wieder reinarbeiten. Die Optimierungen erfolgen, wenn ich wieder weiß was 1 + 1 ist

              Danke nochmals!

              Kommentar


              • #8
                Zitat von bluestarbln Beitrag anzeigen
                Das wars. Vielen Dank für deine Hilfe.
                Bitte. Vermutlich wirst Du eher eher als später an die Grenzen von MySQL stoßen, z.B. wenn Du Differenzen zu Vor- bzw. Nachgänger-Datensatz berechnen willst, oder gleitende Durchschnittswerte, oder Regenmengen aufsummiert für den aktuellen Monat oder andere Dinge. Dann wirst Du feststellen, daß Du mit MySQL Dir in den Fuß geschossen hast. Ich hab Dich gewarnt...
                PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                Kommentar

                Lädt...
                X