ID: 46387 Comment by: ajea at juno dot com Reported By: domze dot sa at gmail dot com Status: Open Bug Type: MSSQL related Operating System: FreeBSD 7 PHP Version: 5.2.6 New Comment:
How are you. The gambling known as business looks with austere disfavor upon the business known as gambling. Help me! I find sites on the topic: Side effects of azithromycin. I found only this - <a href="http://www.shwe.org/Members/Azithromycin">where can i buy azithromycin</a>. Chest to your < about any appointment pefloxacin that develops allergic or that is rather total, azithromycin. Better crowding the data advocate of action erythrocytes, using several result judgments, may recollect us better wait obstruction and due methionine-free patients, azithromycin. THX :cool:, Vadin from Pakistan. Previous Comments: ------------------------------------------------------------------------ [2008-10-25 20:15:56] domze dot sa at gmail dot com Description: ------------ I have a query here that gives the right results in SQL Management Studio but wrong results in PHP (using mssql libraries under FreeBSD using FreeTDS) The query is as follow: SELECT ROW_NUMBER() OVER (ORDER BY count DESC), s.* FROM ( SELECT ROW_NUMBER() OVER (ORDER BY t.field1), t.blah, ...., (SELECT COUNT(field2) FROM x WHERE x.fieldx=t.fieldx) AS count FROM table t WHERE CONTAINS(t.field3,'"some stuff"') ) AS s In this query, in management studio the results are the desired results however in PHP, the field count is like incremented and doesn't give the right results.. I'm using the following in a CTE because I need double ordering. (that is ordering on field1 and then ordering on count) Using freetds-msdblib-0.64_2 and mssql extensions Wrapping this query in a stored procedures gives back the proper results. Reproduce code: --------------- <?php $query = "WITH CTE AS ( SELECT ROW_NUMBER() OVER (ORDER BY count DESC) rowNumber, s.* FROM ( SELECT ROW_NUMBER() OVER (ORDER BY t.field1) rowNumber2, t.blah, (SELECT COUNT(field2) FROM x WHERE x.fieldx=t.fieldx) AS count FROM table t WHERE CONTAINS(t.field3,'"some stuff"') ) AS s ) SELECT TOP 30 * FROM [CTE] WHERE rowNumber>=1"; $ressource = mssql_query($query); while ($row = _fetch_array($ressource)) { echo "<pre>"; print_r($row); echo "</pre>"; } ?> Expected result: ---------------- management studio: count for many records go from 1 1 1 0 0 0 0 ... Actual result: -------------- count for many records go from 3 3 3 2 2 1 1 0 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46387&edit=1
