Announcement

Collapse
No announcement yet.

zahl null wird nicht dargestellt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • zahl null wird nicht dargestellt

    hallo ihr lieben leut,

    ich habe ein problem beim auslesen eines numeric feldes mittels PHP5
    im DB-feld steht zb "70.76512" wenn ich es per PHP auslese, wird aber "0.776512" angezeigt.

    also fehler 1) der script verschluckt die "0"
    fehler 2) die Kommastellen verrücken.

    was passiert mit der null?

    mein code

    Code:
     while ($row = ibase_fetch_object ($sth1)) {
        $i++;if ($y == 1){$k = 1;}else{$k = 0; $y = 0;}if ($k == 0){$color = "high_ceus";  $y = 1;}else{$color = "low_ceus";  $y = 0;}
          
          //anhand der stichprobenIO al nio oder io markieren
          if ($row->STP_IO == "0"){$lfnr_nio = '<d class="nio2">NIO</d>';}else{$lfnr_nio = "";}
          
          $nm_10 = substr($row->WERT, 0, 5)*10; //drehmoment
          
          //MOD 040407
          /*
          $kk = $row->WERT;
          
          settype($nm_10,"string");
    
          echo gettype($row->WERT);*/
          
          
          $wi_10 = substr($row->WERT2,0,4)*10; //winkelgrad
          $drehzahl_10 = substr(@$row->DREHZAHL1IST,0,4)*10; //drehzahl
          
          $zerti_out .= '<tr class="'.$color.'">'."\n";
          $zerti_out .= '<td>'.$row->LFDNR.' '.$lfnr_nio.'</td>'."\n";
          $zerti_out .= '<td>'.$row->DATUHR.'</td>'."\n";
          $zerti_out .= '<td>'.$nm_10.' Nm</td>'."\n";
          $zerti_out .= '<td>'.$wi_10.'°</td>'."\n";      
          $zerti_out .= '<td>'.@$drehzahl_10.' U/min</td>'."\n";        
          $zerti_out .= '</tr>'."\n";
          $erm[] = $row->WERT2;//für function zur ermittelung des Wi-mittelwertes
       
       }
    ich hab auch schon mit settype und so probiert, hilft aber nix.

    es geht um $row->WERT, ich hab es hier mal zehn gerechnet und dann gekürzt damit ich wenigstens vernünftige werte habe. ausser halt das überall die "0" fehlt

    ps: ich kann bei der DB keine Felder ändern, ich zapfe nur eine bestehende an, also nur lesen sonst nix.

    danke für eure hilfe
    Zuletzt editiert von tomig; 06.04.2007, 15:48.

  • #2
    Laß dir mal
    $row->WERT direkt anzeigen

    Schau dir mal number_format() an.

    Comment


    • #3
      danke erstmal, die formatierung ist sicher besser als mit substr.

      aber mein problem ist deswegen leider auch nicht weg.

      hier noch ein paar infos:

      var_dump($row)
      Code:
      object(stdClass)#3 (6) { ["DREHZAHL1IST"]=>  NULL ["LFDNR"]=>  int(4) ["DATUHR"]=>  string(19) "2007-02-03 08:06:24" ["WERT"]=>  string(10) "2.82000000" ["WERT2"]=>  string(11) "5.675000000" ["STP_IO"]=>  string(1) "1" }
      ein bild zu leichteren erklärung

      http://tomig.at/pix/firebird.png


      edit:

      so, wie es aussieht ist da ein fehler in der extension von interbase.
      der datentyp des feldes ist numeric und nur bei diesem gibt es probleme.

      Lösung:

      ich hab einen neuen VIEW eingerichtet und alle numeric felder durch double precision gecasted. zwar nicht sooo eine schöne lösung aber sie funzt pipifein.

      danke trozdem.
      Zuletzt editiert von tomig; 06.04.2007, 15:47.

      Comment

      Working...
      X