Re: Question on how to test a value
| From: | Dobromir Velev | Date: | Thu, 26 Jul 2001 08:15:17 +0000 |
| Subject: | Re: Question on how to test a value | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-10791@lists.php.net to get a copy of this message | ||
Hi,
even if there was no data in the price field when the form was submited the
$price variable exists and isset($price) returns true. May be you could try
!empty($price) instead of isset($price) - Something like.
$query7 = !empty($price) ? "INSERT INTO price (itemid, price) VALUES
($itemid, '$price')" : 0;
$result7 = @pg_Exec($connection, $query7 );
Then when the price field is empty your script will not insert anything into
the database.
You can also modify your select query not to show records without price
select * from price where itemid=50 and price is not Null and price<>"";
Hope this will help
Dobromir Velev
-----Original Message-----
From: Lara J. Fabans <lara@lodestone-sw.com>
To: php-db@lists.php.net <php-db@lists.php.net>
Date: Wednesday, July 25, 2001 7:52 PM
Subject: [PHP-DB] Question on how to test a value
Hi, friends,
Here is how I'm putting the information into the database:
$query7 = isset($price) ? "INSERT INTO price (itemid, price) VALUES
($itemid, '$price')" : 0;
$result7 = @pg_Exec($connection, $query7 );
I'm having difficulties with my test in display.
I've tried isset and == 'NULL' and == '0' as such:
if ($values2 == 'NULL')
{
print "<tr><td
class=\"display\"> </td></tr>";
} else
{
print "<tr><td class=\"display\">US$
$values2->price</td></tr></table></td>";
}
and
if (isset($values2))
{
print "<tr><td class=\"display\">US$
$values2->price</td></tr></table></td>";
} else
{
print "<tr><td
class=\"display\"> </td></tr>";
}
However, in both cases, if the price doesn't exist in the database, the US$
still shows up in the
display.
db=> select * from price where itemid=50;
priceid | itemid | price
---------+--------+-------
48 | 50 |
(1 row)
I was surprised that the insert put something into the database at all.
I could use some advice.
I cleaned up the database to remove all the lines where price wasn't set.
Why is it creating a table row? If the insert form is passing in where they
didn't set the price,
wouldn't that get picked up by the isset?
And if there isn't a row in the database, wouldn't testing isset of the
result of the query be
sufficient, or should I do a test on $values2->price instead?
I've tried lots of things and nothing seems to be doing the right behavior.
So thanks!
Lara