Re: IF's!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dan Shirah wrote:
Okay, I know this is probably a real easy fix, and I could swear I've done
it before, but for some reason it's just not working.

Below is my query, it does a conditional search based on info put in a form
by the user. If I put in a valid letter/name for the last_name that I know
is in my database everything works fine.

BUT, if I put in a character/name for the last_name that does not exist in
my database I get the following error: Call to undefined function
mssql_error() when I should be getting the echo, "No results"

The snipet of my code that is throwing the error is:
if (!empty($tot_result)) {
$total_results = mssql_num_rows($tot_result) or die(mssql_error());
}

Should I not use (!empty()) when checking to see if a query did not return
any results?

MY CODE:
<?php
// Figure out the total number of results in DB:
$sql_total= "SELECT * FROM payment_request WHERE payment_request.status_code
= 'P'";
 if ($customer_last != "") {
 $sql_total.=" AND last_name LIKE '$customer_last%'";
 if ($customer_first != "") {
 $sql_total.=" AND first_name LIKE '$customer_first%'";
   }
  }
$tot_result = mssql_query($sql_total) or die(mssql_error());

Fist off, mssql_error() is not a valid function... You should be using mssql_get_last_message() instead.

But, read on first...

You have a couple choices here.
if ( $tot_result ) {

or

if ( is_resource($tot_result) ) {

or (my favorite)

<?php

#####
# Remember to clean $customer_last & $customer_first before you
# place them in your SQL statement.  Unfortunately, mssql_* doesn't have
# a function for cleaning your values before you us them.  You will need
# to create your own method of input validation here.
#
# Also, I'm assuming that since you didn't show your mssql_connect() call,
# that you are only showing us part of your script...
#####

// Figure out the total number of results in DB:
$sql_total= "SELECT * FROM payment_request WHERE payment_request.status_code = 'P'";
if ($customer_last != "") {

	$sql_total .= " AND last_name LIKE '{$customer_last}%'";

}
if ($customer_first != "") {

	$sql_total .= " AND first_name LIKE '{$customer_first}%'";

}

if ( ( $tot_result = mssql_query($sql_total) ) === false ) {

	echo 'MSSQL ERROR: '.mssql_get_last_message();

} else {

	$total_results = mssql_num_rows($tot_result);

	if ( $total_results == 0 ) {

		echo 'No results found.';

	} else {

		// Figure out the total number of pages. Always round up using ceil()
		$total_pages = ceil($total_results / $max_results);
		echo "Results per page: {$max_results}<br />\n";
		echo "Total results: {$total_results}<br />\n";
		echo "Total number of pages needed: {$total_pages}<br />\n";

	}
}

?>

This should work for you...


if (empty($tot_result)) {
 echo "No results";
 }
if (!empty($tot_result)) {
$total_results = mssql_num_rows($tot_result) or die(mssql_error());
}
// Figure out the total number of pages. Always round up using ceil()
$total_pages = ceil($total_results / $max_results);
//echo "Results per page: ".$max_results."\n <br />";
//echo "Total results: ".$total_results."\n <br />";
//echo "Total number of pages needed: ".$total_pages."\n <br />";
?>



--
Jim Lucas

   "Some men are born to greatness, some achieve greatness,
       and some have greatness thrust upon them."

Twelfth Night, Act II, Scene V
    by William Shakespeare

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux