WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 29.03.2007, 14:21   #1
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard PHP: Hohe Zahlenwerte vergleichen ==> falsches Ergebnis

Mein Problem: PHP erzeugt mir bei zwei Zahlenvergleichen (mit zwei sehr hohen Zahlen) zu oft wahr!
Und zwar jedesmal wenn ich
400000000000000000000301 mit
400000000000000000000301 vergleichen will (identisch) liefert die Abfrage wahr, aber dann anschließend gleich auch für
400000000000000000000301 mit 400000000000000000000302!
in einem anderen Fall (ich vergleich die ID 400000000000000000000300 mit allen anderen) liefert er nur bei 400000000000000000000300 wahr und sonst überall falsch. Sind die Nummernbereiche einfach zu groß (es gibt so viele PHP-Tutorials, dass man dabei keine brauchbaren technischen Beschreibungen findet) oder wieso tritt der Fehler gerade bei diese Kombination auf?

Code:
400000000000000000000301 400000000000000000000300 
<option value='400000000000000000000300' >Wagner Patrick</option>
400000000000000000000301 400000000000000000000301 1
<option value='400000000000000000000301' selected='selected'>XXXXXXXXXXXXX Caterina</option>
400000000000000000000301 400000000000000000000302 1
<option value='400000000000000000000302' selected='selected'>XXXXXXXXXXXXX Manuel</option>
400000000000000000000301 653517 
<option value='652347' >XXXXXXXXXXXXX GERHARD</option>
400000000000000000000301 211532 
<option value='223532' >XXXXXXXXXXXXX Manfred</option>
Code:
                        <form action='lwpro.php' method='POST'>
                        <select name='userid' size='20' onChange='submit();' <?=$disable_userid ?>>
                            <?php
                                $sql='SELECT ANMELDE_BENUTZER_ID,ANMELDE_BENUTZER_ZUNAME, ANMELDE_BENUTZER_VORNAME FROM anmelde_benutzer where
                                 rechte_uid_stufe(ANMELDE_BENUTZER_LOGIN,ANMELDE_BENUTZER_PASSWORT,'.$statuser.') > 29';
                                 // RICHTIGE HÖHE FEHLT: 29 hätte anonymous, 30 normaler User!
                                $stmt = OCIParse($connection, $sql);
                                OCIExecute($stmt);

                                while (OCIFetch($stmt)) {
                                    $selected='';
echo "\n".$userid . " " . OCIResult($stmt, 'ANMELDE_BENUTZER_ID') . " " . ($userid==OCIResult($stmt, 'ANMELDE_BENUTZER_ID'));
                                    if($userid==OCIResult($stmt, 'ANMELDE_BENUTZER_ID')){
					$selected="selected='selected'";
                                    }
                                    echo "\n<option value='" . OCIResult($stmt, 'ANMELDE_BENUTZER_ID') . "' " 
                                    . $selected . ">" . OCIResult($stmt, 'ANMELDE_BENUTZER_ZUNAME')
                                    . " " . OCIResult($stmt, 'ANMELDE_BENUTZER_VORNAME') . "</option>";
                                }
                                OCIFreeStatement($stmt);
                            ?>
                        </select>
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 29.03.2007, 14:56   #2
zAPPEL
Inventar
 
Registriert seit: 07.11.2001
Ort: Perchtoldsdorf
Alter: 45
Beiträge: 2.085

Mein Computer

Standard

Hier steht etwas dazu, evt. hilft dir das weiter?

http://www.hudzilla.org/phpbook/read.php/3_12_2

Aber wieso hast du überhaupt so riesige Zahlen? Haut die ganzen Nullen am besten einfach raus

lg zAPPEL
____________________________________
„Das menschliche Gehirn ist eine großartige Sache.
Es funktioniert vom Moment der Geburt an – bis zu
dem Zeitpunkt, wo du aufstehst, um eine Rede zu halten.“ Mark Twain

"Windle shook his head sadly. Four exclamation marks, the sure sign of an insane mind" Reaper Man, Terry Pratchett
zAPPEL ist offline   Mit Zitat antworten
Alt 29.03.2007, 15:55   #3
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

Das ist eine laufende Sequence (Oracle) mit der ich nichts zu tun habe, ich soll nur eine kompatible Erweiterung schreiben
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 29.03.2007, 16:26   #4
zAPPEL
Inventar
 
Registriert seit: 07.11.2001
Ort: Perchtoldsdorf
Alter: 45
Beiträge: 2.085

Mein Computer

Standard

Wie in dem Artikel auch angesprochen mit
http://at.php.net/manual/de/function.bccomp.php
sollte es funktionieren.
____________________________________
„Das menschliche Gehirn ist eine großartige Sache.
Es funktioniert vom Moment der Geburt an – bis zu
dem Zeitpunkt, wo du aufstehst, um eine Rede zu halten.“ Mark Twain

"Windle shook his head sadly. Four exclamation marks, the sure sign of an insane mind" Reaper Man, Terry Pratchett
zAPPEL ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:37   #5
void
Hero
 
Benutzerbild von void
 
Registriert seit: 26.07.2001
Ort: Wien
Beiträge: 811


Standard

oder als string: http://at.php.net/manual/de/function.strcmp.php
____________________________________
nobody is perfect
void ist offline   Mit Zitat antworten
Alt 29.03.2007, 19:52   #6
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

Herzlichen Dank!
Auf die Stringlösung hätte ich selbst kommen können, habe ich ja im Projekt woanders schon einige Male verwendet :/
____________________________________
Resistantium est futilius
3of4 ist offline   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 an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:19 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag