Problem with code between 2 diffrent sites with mysql fetch

breeze351
breeze351 used Ask the Experts™
on
I have 2 sites. One for production and one for test.   The production site is a VPS (may or not mean anything).  I have an inclusion, all of a sudden the production site returns an error!

This is the error and the screen from production:

SurveySeq = NY10460%
String2 = SELECT * FROM mapfile WHERE SEQ LIKE 'NY10460%' AND BNMB >= 400 - 10 AND BNMB <= 400 + 10 ORDER BY ABS(400 - BNMB) ASC LIMIT 1


Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/langsyst/public_html/lansco/BuildingChk.php on line 167 String2 = SELECT * FROM mapfile WHERE SEQ LIKE 'NY10460%' AND BNMB >= 400 - 10 AND BNMB <= 400 + 10 ORDER BY ABS(400 - BNMB) ASC LIMIT 1 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/langsyst/public_html/lansco/BuildingChk.php on line 174 count (194) = count =
menu = 5

This is the code from production:
if ($_SESSION['Menu_No'] == 3)
      {
            $SqlString2 = "SELECT * FROM survey_data WHERE
                              SEQ LIKE '$SurveySeq'
                              AND
                              ADDRESS like '$SurveyAddress'";
      }
else
      {
            $SqlString2 = "SELECT * FROM mapfile
                                    WHERE
                                          SEQ LIKE '$SurveySeq'
                                    AND
                                          BNMB >= $work - 10
                                    AND
                                          BNMB <= $work + 10
                                    ORDER BY
                                          ABS($work - BNMB)
                                          ASC
                                          LIMIT 1";
echo "SurveySeq = ".$SurveySeq."<br>";
echo "String2 = ".$SqlString2."<br><br><br>";
      }
$Survey_File = mysql_query($SqlString2);
$ROW2=mysql_fetch_array($Survey_File, MYSQL_BOTH);
---------------------------------------------------------------------------------------
The test site has the following code:
if ($_SESSION['Menu_No'] == 3)
      {
            $SqlString2 = "SELECT * FROM survey_data WHERE
                              SEQ LIKE '$SurveySeq'
                              AND
                              ADDRESS like '$SurveyAddress'";
      }
else
      {
            $SqlString2 = "SELECT * FROM mapfile
                                    WHERE
                                          SEQ LIKE '$SurveySeq'
                                    AND
                                          BNMB >= $work - 10
                                    AND
                                          BNMB <= $work + 10
                                    ORDER BY
                                          ABS($work - BNMB)
                                          ASC
                                          LIMIT 1";
      }
$Survey_File = mysql_query($SqlString2);
$ROW2=mysql_fetch_array($Survey_File, MYSQL_BOTH);
--------------------------------------------------------------------------------
If you take out the "echo" in the production they are both the same.
WTF!!!
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Most Valuable Expert 2011
Top Expert 2016

Commented:
Let's start with this: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

That usually means that the query failed, perhaps because of a syntax error or failure of the server.  This article can show you how to test the query results and determine if the query succeeded or failed.  If it failed you can use the examples here to print out the error messages.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Databases/A_11177-PHP-MySQL-Deprecated-as-of-PHP-5-5-0.html

You might also want to add error_reporting(E_ALL) to the script.  PHP may have some things to tell you, but you won't see these things unless you raise the error report yourself.

As you will also see in that article, PHP is doing away with MySQL support, so you will need to move to one of the supported extensions.  If you choose object-oriented MySQLi the conversion is fairly easy.
Most Valuable Expert 2011
Top Expert 2016

Commented:
For a quick-and-dirty check on the MySQL failure, put these two instructions after the call to MySQL_Query() and show us the output, please.

var_dump($Survey_File);
var_dump( mysql_error() );
Fixer of Problems
Most Valuable Expert 2014
Commented:
I agree with Ray, that error message normally means the query failed.
Exploring SQL Server 2016: Fundamentals

Learn the fundamentals of Microsoft SQL Server, a relational database management system that stores and retrieves data when requested by other software applications.

Author

Commented:
Ok, the query failed.  Why does the code work on one site but not the other?  Also if you read the original post, the only difference is that the site with the error is running VPS.  And I said before,  I haven't touched this code since 04/17/2015.

Author

Commented:
I got it.  Dumb partner renamed "mapfile" to "mapfile_save" with out telling me!!!!!!!!!!!!  This is why it would work on one site and not the other.
Most Valuable Expert 2011
Top Expert 2016

Commented:
So you won't show us the var_dump() output we asked for?

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial