|
Posted by Chris on 09/14/05 03:26
Are you sure you're getting the number as you need it from the query?
PHP won't (though I guess there could be a bug) automatically convert a
numerical string into it's numerical equivalent.
If the code you posted produces this problem, then the only possiblities
I see are that the mssql module is returning a number, or the database
query is returning that particular string.
Chris
J B wrote:
> I suspect I'm far from the first person to have this problem, but I can't
>seem to find the right search terms to locate the solution. Basically, I'm
>doing a database query and dumping the results into an array. Then, later,
>when I try to display the contents of the array, I run into problems. One of
>the database fields is a very long number, basically an 18-or-so-digit
>serial number. When I tell PHP to print the array variable that corresponds
>to that field, I get what looks like a floating point number in exponent
>notation. I need to display the entire number as it appears in the database.
>Here's the code that does the db lookup and putting the info into the array:
>
>----- cut here
>$con = mssql_connect($hostname, $username, $password) or die("Database
>failed to respond.");
>mssql_select_db($dbName, $con) or die("Table unavailable.");
>
>$query = "SELECT * FROM Voucher WHERE (Number LIKE '%" .
>$_POST['vouchernum'] . "');";
>
>$result = mssql_query($query, $con);
>$result_numrows = mssql_num_rows($result);
>
>$tmpvar = 0;
>$vouchers[] = '';
>for ($i = 0; $i < $result_numrows; ++$i) {
>$line = mssql_fetch_row($result);
>$vouchers[$tmpvar][0] = $line[0];
>$vouchers[$tmpvar][1] = $line[4];
>$vouchers[$tmpvar][2] = $line[5];
>$vouchers[$tmpvar][3] = $line[6];
>$vouchers[$tmpvar][4] = $line[13];
>$vouchers[$tmpvar][5] = $line[14];
>$vouchers[$tmpvar][6] = $line[15];
>$vouchers[$tmpvar][7] = $line[16];
>$tmpvar++;
>}
>mssql_close($con);
>
>echo("<pre>");
>print_r($vouchers);
>echo("</pre>");
>
>----- cut here
>
>Basically, $line[0] aka $vouchers[$tmpvar][0] is a really big number and
>it's being treated like a number when I need it to be treated like a string
>and just printed. I tried playing around with typecasting, but I couldn't
>get it to do anything different.
>Thanks in advance for any help, and if I need to provide more info feel free
>to let me know.
>
>
>
[Back to original message]
|