|  |  | |
|  |  | 
| 
 | |||||||
| Programmierung Rat & Tat für Programmierer | 
|  | 
|  | Themen-Optionen | Ansicht | 
|  29.03.2007, 15:21 | #1 | 
| Elite  Registriert seit: 14.11.1999 Alter: 40 
					Beiträge: 1.429
				 |  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> | 
|   |   | 
|  29.03.2007, 15:56 | #2 | 
| Inventar  |   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 | 
|   |   | 
|  29.03.2007, 16:55 | #3 | 
| Elite  Registriert seit: 14.11.1999 Alter: 40 
					Beiträge: 1.429
				 |   Das ist eine laufende Sequence (Oracle) mit der ich nichts zu tun habe, ich soll nur eine kompatible Erweiterung schreiben | 
|   |   | 
|  29.03.2007, 17:26 | #4 | 
| Inventar  |   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 | 
|   |   | 
|  29.03.2007, 20:37 | #5 | 
| Hero  Registriert seit: 26.07.2001 Ort: Wien 
					Beiträge: 811
				 |   oder als string: http://at.php.net/manual/de/function.strcmp.php 
				____________________________________ nobody is perfect | 
|   |   | 
|  29.03.2007, 20:52 | #6 | 
| Elite  Registriert seit: 14.11.1999 Alter: 40 
					Beiträge: 1.429
				 |   Herzlichen Dank! Auf die Stringlösung hätte ich selbst kommen können, habe ich ja im Projekt woanders schon einige Male verwendet :/ | 
|   |   | 
|  | 
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| 
 | 
 |