Re: Empty Array?

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

 



Dan Shirah wrote:
Ah, what a lovely case of the Friday morning brain farts!

I have a query that selects some data from a table based on the current ID
selected.

If the query does not return any results, I want it to continue to another
query that will insert a record into the table.

Below is what I have...but it will not insert anything if the first query
does not find a match.


<?php
$request_id = $_GET['id'];
$current_user = substr($_SERVER['AUTH_USER'], 13);

$lock_query = "SELECT id, locked_by_user FROM locked_payments WHERE id =
'$request_id'";
$lock_result = mssql_query($lock_query) or die(mssql_get_last_message());

if (empty($lock_result)) {
 $set_lock = "INSERT into locked_payments (
     id,
     locked_by_user)
     VALUES
      ('$request_id',
     '$current_user')";
 mssql_query($set_lock) or die ("Insert failed: <br
/>".mssql_get_last_message());
 }
?>



Any ideas on what I'm doing wrong?  My guess is that (empty($lock_result))
is probably not the correct way to check if an array is empty?


I won't say anything about what others have already warned you about, but here is what I would do.

<?php
$request_id = intval($_GET['id']);
$current_user = substr($_SERVER['AUTH_USER'], 13);

$lock_query = "	SELECT id, locked_by_user
		FROM locked_payments
		WHERE id = '{$request_id}'";
$lock_result = mssql_query($lock_query) or
		die('MSSQL ERROR: Lock Query Failed<br />'.
			mssql_get_last_message());

#
## here is the key to making this work...
#  checking to make sure that the query returned 0 (zero) results
#  http://us3.php.net/mssql_num_rows
if ( mssql_num_rows($lock_result) == 0 ) {
 $set_lock = "INSERT INTO locked_payments
		(id,locked_by_user)
		VALUES
		('{$request_id}','{$current_user}')";
	mssql_query($set_lock) or
		die ('MSSQL ERROR: Insert failed:<br />'.
			mssql_get_last_message());
 }
?>



--
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