SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 08.06.2014, 18:50:16
night257 night257 ist offline
Anfänger
 
Registriert seit: Jun 2014
Alter: 42
Beiträge: 3
falscher wert

Hallo Zusammen,

ich lese daten aus einer firebird datenbank aus und lasse diese berechnen soweit funktioniert es auch aber wenn es nichts zu berechnen gibt wünschte ich mir das er das dann auch nicht macht sonder denn wert aus der tabelle 1:1 übernimmt. hier mal ein anschauliches beispiel was gemeint ist.

es gibt 2 felder die ich auslese

893 und 30 das wird dann geteilt und es kommt 29,9 raus das funtioniert

5 und kein inhalt dann kann er ja nichts berechnen also soll er die 5 schreiben aber er schreibt immer 29,9 ausser es kommt wieder eine zeiel wo er berechnen kann dann funktioniert es.

PHP-Code:
while ($zeile=$db->fetch_row($erg)) {
if(isset(
$zeile[9]) && $zeile[9] != 0){
    
$ergebnis $zeile[1] / $zeile[8] / $zeile[9];
  }elseif(isset(
$zeile[8]) && $zeile[8] != 0){
    
$ergebnis $zeile[1] / $zeile[8];
  } 
hab ich hierbei was übersehen vielen dank für eure antworten.
Mit Zitat antworten
  #2  
Alt 09.06.2014, 21:54:53
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: falscher wert

Zitat:
Zitat von night257 Beitrag anzeigen

es gibt 2 felder die ich auslese

893 und 30 das wird dann geteilt und es kommt 29,9 raus das funtioniert

5 und kein inhalt dann kann er ja nichts berechnen also soll er die 5 schreiben aber er schreibt immer 29,9 ausser es kommt wieder eine zeiel wo er berechnen kann dann funktioniert es.

Dein numerischer CoProzessor scheint defekt zu sein.

Code:
test=*# create table night257(a numeric, b numeric);
CREATE TABLE
test=*# copy night257 from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 893  30
>> 5    \N
>> \.
test=*# select coalesce(a/b, a) from night257 ;
      coalesce
---------------------
 29.7666666666666667
                   5
(2 rows)

test=*#
Mit Zitat antworten
  #3  
Alt 09.06.2014, 23:58:50
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: falscher wert

Zitat:
Zitat von night257 Beitrag anzeigen
es gibt 2 felder die ich auslese
893 und 30 das wird dann geteilt und es kommt 29,9 raus das funtioniert
Das ist schon mal falsch.
Jeder lausige Taschenrechner wird da was von 29,766666666666666666666666666667 erzählen. Und selbst die ist ungenau, weil eigentlich 29,76[die 6 als Periode gesehen] herauskäme.

Immer dann, wenn der Operator / ohne INTEGER-Zwangscasting ins Spiel kommt, wird aus dem sauteurem Rechenknecht unterm Tisch ein Schätzeisen Marke Rechenschieber.
Die Zahl 0.2 ergibt einen unendlichen binären Bruch. Damit erweisen sich auch float Typen als Zahlen mit einer "eingeschränkten Genauigkeit".

Wie hieß das früher:
"Herr Professor, was kommt denn bei 6 geteilt durch 3 raus?"
"Ungefähr 2."
Mit Zitat antworten
  #4  
Alt 14.06.2014, 11:11:21
night257 night257 ist offline
Anfänger
 
Registriert seit: Jun 2014
Alter: 42
Beiträge: 3
AW: falscher wert

vielen dank für die antworten aber das behebt leider das problem nicht. die berechnung funktioniert.

ich möchte aber wenn nichts zu berechnen da ist er denn anderen wert wieder gibt.
Mit Zitat antworten
  #5  
Alt 14.06.2014, 12:17:26
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: falscher wert

Zitat:
ich möchte aber wenn nichts zu berechnen da ist er denn anderen wert wieder gibt.
Schön....

Aber helfen kann man so nicht.

Leider sehen wir nicht, was in deinen Rows so steht.....
Klartext: Keine Testdaten kein Lösungsansatz.

Zeige doch mal ein paar Zeilen mit var_export()

Ansonsten, schau dir selber an, was da drin steht und debugge deine Konstruktion.
Mit Zitat antworten
  #6  
Alt 15.06.2014, 18:11:59
night257 night257 ist offline
Anfänger
 
Registriert seit: Jun 2014
Alter: 42
Beiträge: 3
AW: falscher wert

das kommt bei der ganzen frage raus:


Array ( [0] => 111 [1] => 1 [2] => Brennstoffe [3] => Holzbrickt Eckig [4] => 1 [5] => 4 [6] => [7] => [8] => [9] => [10] => Einwegpal. [11] => [12] => [13] => Brennstoffe [14] => Holzbrickt Eckig [15] => 1 [16] => 4 [17] => [18] => [19] => [20] => [21] => Einwegpal. [22] => [23] => [24] => 2013-10-04 14:05:57 )

Array ( [0] => 112 [1] => 7 [2] => Brennstoffe [3] => Holzbricketts Rund [4] => 2 [5] => 4 [6] => [7] => [8] => [9] => [10] => Einwegpal. [11] => [12] => [13] => Brennstoffe [14] => Holzbricketts Rund [15] => 2 [16] => 4 [17] => [18] => [19] => [20] => [21] => Einwegpal. [22] => [23] => [24] => 2013-09-06 15:10:53 )

Array ( [0] => 112 [1] => 10 [2] => Brennstoffe [3] => Holzbricketts Rund [4] => 2 [5] => 4 [6] => [7] => [8] => [9] => [10] => Einwegpal. [11] => [12] => [13] => Brennstoffe [14] => Holzbricketts Rund [15] => 2 [16] => 4 [17] => [18] => [19] => [20] => [21] => Einwegpal. [22] => [23] => [24] => 2013-10-04 14:06:19 )

Array ( [0] => 99 [1] => 1584 [2] => Brennstoffe [3] => Holzpellets 6mm DINplus [4] => 200006 [5] => 4 [6] => 16 [7] => [8] => 66 [9] => [10] => Einwegpal. [11] => Sack [12] => [13] => Brennstoffe [14] => Holzpellets 6mm DINplus [15] => 200006 [16] => 4 [17] => 16 [18] => [19] => 66 [20] => [21] => Einwegpal. [22] => Sack [23] => [24] => 2014-01-09 14:08:33 )

Array ( [0] => 141 [1] => 20 [2] => Brennstoffe [3] => Holzpellets EcoPowerPellets [4] => 5 [5] => 4 [6] => [7] => [8] => [9] => [10] => Einwegpal. [11] => [12] => [13] => Brennstoffe [14] => Holzpellets EcoPowerPellets [15] => 5 [16] => 4 [17] => [18] => [19] => [20] => [21] => Einwegpal. [22] => [23] => [24] => 2013-12-05 13:26:40 )

Array ( [0] => 141 [1] => 22 [2] => Brennstoffe [3] => Holzpellets EcoPowerPellets [4] => 5 [5] => 4 [6] => [7] => [8] => [9] => [10] => Einwegpal. [11] => [12] => [13] => Brennstoffe [14] => Holzpellets EcoPowerPellets [15] => 5 [16] => 4 [17] => [18] => [19] => [20] => [21] => Einwegpal. [22] => [23] => [24] => 2014-02-26 14:43:52 )

Array ( [0] => 141 [1] => 23 [2] => Brennstoffe [3] => Holzpellets EcoPowerPellets [4] => 5 [5] => 4 [6] => [7] => [8] => [9] => [10] => Einwegpal. [11] => [12] => [13] => Brennstoffe [14] => Holzpellets EcoPowerPellets [15] => 5 [16] => 4 [17] => [18] => [19] => [20] => [21] => Einwegpal. [22] => [23] => [24] => 2014-03-01 11:41:29 )


ArtikelNr Bezeichnung Bestand GV Verpackung Bestand KV
6 Holzpellets 6mm DINplus Einwegpal. 66 Sack 1584 Sack
1 Holzbrickt Eckig Einwegpal. 1
2 Holzbricketts Rund Einwegpal. 7
2 Holzbricketts Rund Einwegpal. 10
5 Holzpellets EcoPowerPellets Einwegpal. 20
5 Holzpellets EcoPowerPellets Einwegpal. 22
5 Holzpellets EcoPowerPellets Einwegpal. 23


artikelnummer 6 muss jetzt berechnet werden un d bei bestand GV eingetragen werden das ist ja kein problem 1584:66= 24 das funktioniert.
aber bei allen anderen gibts ja nix zu berechnen weil die felder leer sind aber er soll dann jeweils das vom bestand kv eintragen aktuell trägt er da immer 24 ein und ich weis nicht mehr was ich machen kann.

anbei noch mein kompletter code

PHP-Code:
<?php
include_once("class_fbird.php");

$erg=$db->query("select Stock.ArtikelId, Sum(Stock.AnzahlKV) as SUMKV,
ArticleGroup.Bezeichnung as ArticleGroupName,
Article.Bezeichnung as ArticleName, 
Article.ArtikelNr,
Article.VerpackungsId as PackagingId1,
Article.VerpackungsId2 as PackagingId2,
Article.VerpackungsId3 as PackagingId3,
Article.Anzahl as ArticleQuantity1,
Article.Anzahl2 as ArticleQuantity2,
Packaging1.Verpackung as PackagingName1,
Packaging2.Verpackung as PackagingName2,
Packaging3.Verpackung as PackagingName3,
ArticleGroup.Bezeichnung as ArticleGroupName,
Article.Bezeichnung as ArticleName, Article.ArtikelNr,
Article.VerpackungsId as PackagingId1,
Article.VerpackungsId2 as PackagingId2,
Article.VerpackungsId3 as PackagingId3,
Article.Anzahl as ArticleQuantity1,
Article.Anzahl2 as ArticleQuantity2,
Packaging1.Verpackung as PackagingName1,
Packaging2.Verpackung as PackagingName2,
Packaging3.Verpackung as PackagingName3,
IntoStoreItem.EinlagerDatum as IntoStoreDate
from tblLagerBestand Stock
inner join tblArtikelDetail Article on Article.Id = Stock.ArtikelId
inner join tblArtikel ArticleGroup on ArticleGroup.Id = Article.ArtikelId
inner join tblLagerware StorageItem on StorageItem.Id = Stock.LagerwareId
left outer join tblVerpackung Packaging1 on Packaging1.Id = Article.VerpackungsId
left outer join tblVerpackung Packaging2 on Packaging2.Id = Article.VerpackungsId2
left outer join tblVerpackung Packaging3 on Packaging3.Id = Article.VerpackungsId3
inner join tblLagerWare IntoStoreItem on IntoStoreItem.Id = StorageItem.OrigEinlagerwareId
where BestandVon <= '30.12.2500 00:00:00.0000' and BestandBis > '30.12.2500 00:00:00.0000'
and StorageItem.LagerKdId = 23987
group by
Stock.ArtikelId, 
ArticleGroup.Bezeichnung,
Article.Bezeichnung,
Article.ArtikelNr,
Article.VerpackungsId,
Article.VerpackungsId2,
Article.VerpackungsId3,
Article.Anzahl,
Article.Anzahl2,
Packaging1.Verpackung,
Packaging2.Verpackung,
Packaging3.Verpackung,
ArticleGroup.Bezeichnung,
Article.Bezeichnung,
Article.VerpackungsId,
Article.VerpackungsId2,
Article.VerpackungsId3,
Article.Anzahl,
Article.Anzahl2,
Packaging1.Verpackung,
Packaging2.Verpackung,
Packaging3.Verpackung,
IntoStoreItem.EinlagerDatum


"
);
while (
$zeile=$db->fetch_row($erg)) {
if(isset(
$zeile[9]) && $zeile[9] != 0){
    
$ergebnis $zeile[1] / $zeile[8] / $zeile[9];
  }elseif(isset(
$zeile[8]) && $zeile[8] != 0){
    
$ergebnis $zeile[1] / $zeile[8];
  }elseif(isset(
$zeile[9]) && $zeile[9] != 0){
    
$ergebnis $zeile[12];
  }
$vp strlen($zeile[12]) ? $zeile[12] : $zeile[11];
$test round ($ergebnis,1);
$test str_replace("."","$test); // Ersetzt Punkt durch Komma 
echo "<table bgcolor='#666666' width='1100px' border='1' cellspacing='0' cellpadding='0' style='font-size=9pt'>
   <tr>
    <td width='150'align='left'>$zeile[4]</td>
    <td width='270'align='left'>$zeile[3]</td>
    <td width='50'align='center'>$test</td>
    <td width='170'align='center'>$zeile[10]</td>
    <td width='50'align='center'>$zeile[8]</td>
    <td width='115'align='center'>$zeile[11]</td>
    <td width='50'align='center'>$zeile[9]</td>
    <td width='115'align='center'>$zeile[12]</td>
    <td width='100'align='right'>$zeile[1]</td>
    <td width='100'align='right'>$vp</td>
   </tr
</table>"
;
}
$db->ende();
?>

Geändert von night257 (15.06.2014 um 18:23:34 Uhr) Grund: versuch
Mit Zitat antworten
  #7  
Alt 15.06.2014, 22:12:50
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: falscher wert

Zitat:
Zitat von night257 Beitrag anzeigen
ich möchte aber wenn nichts zu berechnen da ist er denn anderen wert wieder gibt.
Ja, und? Wenn Du zu blöd zum lesen bist ist das Dein Problem, die Lösung wurde ja schon genannt.
Mit Zitat antworten
  #8  
Alt 16.06.2014, 00:04:24
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: falscher wert

So wird das nix. Zurück zum Start.
Zitat:
Zitat von night257 Beitrag anzeigen
ich lese daten aus einer firebird datenbank aus
Aha.
1. welches Betriebssystem?
2. wie wurde PHP compiliert?
Hier http://www.firebirdfaq.org/faq191/ findet man ua.
5. run: ./configure --with-interbase=shared,/opt/firebird

Da die firebird Extension selbst gebaut werden muß und ich zumindest für die interbase Extension keinerlei Funktionsbeschreibungen finden kann, wäre es schon mal interessant zu wissen, wie sich PHP mit firebird unterhält.

Solche Aussagen:
Zitat:
Please note that PHP5.x has a bug regarding NUMERIC(18,7) and other datatypes with precision higher than 6. The bug has been reported to PHP bug tracker, but is not fixed yet (PHP 5.2.3).
erwecken wenig Vertrauen.

Zitat:
hier mal ein anschauliches beispiel was gemeint ist.
Daß das Zeilengemüse anschaulich sein soll, glaubt außer Dir wohl keiner.

Zitat:
es gibt 2 felder die ich auslese
893 und 30 das wird dann geteilt und es kommt 29,9 raus das funtioniert
Das das Blödsinn ist, wurde Dir schon mitgeteilt.
Ein Rechner, der bei der Division 893/30 als Ergebnis 29,9 ermittelt, gehört in die Mülltonne.

Und was soll das?
Zitat:
PHP-Code:
while ($zeile=$db->fetch_row($erg)) {
if(isset(
$zeile[9]) && $zeile[9] != 0){
    
$ergebnis $zeile[1] / $zeile[8] / $zeile[9];
  }elseif(isset(
$zeile[8]) && $zeile[8] != 0){
    
$ergebnis $zeile[1] / $zeile[8];
  } 
Die von Dir verwendete Klasse kennt hier wahrscheinlich keiner. Eventuell könnte es sich um das http://pecl.php.net/package/PDO_FIREBIRD handeln.
Weniger lustig ist das:
Code:
0.2 	beta 	2005-02-09 	PDO_FIREBIRD-0.2.tgz (13.1kB)
Das wäre 9 Jahre alter Beta-Schrott, der schon scheitert, wenn er 893 durch 30 teilen soll.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wert einer Datenbankabfrage in .php als variable verwenden fab_t PHP Grundlagen 3 09.09.2012 15:43:04
Wert aus einem Array löschen jan84 PHP Grundlagen 3 07.12.2011 22:34:13
Tabellen normalisieren teddyd MySQLi/PDO/(MySQL) 3 09.06.2011 11:22:38
Ausgelesenen Wert von statischem Wert subtrahieren Unwissender HTML, CSS und JavaScript Help! 1 01.05.2010 08:08:38
Problem - kleinsten Wert ermitteln und in spalte schreiben. starkeeper MySQLi/PDO/(MySQL) 1 07.08.2009 13:26:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:50:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt