Re: Multiple database seeking

From: Date: Mon, 03 Dec 2001 15:11:48 +0000
Subject: Re: Multiple database seeking
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-76380@lists.php.net to get a copy of this message
Allen, Have you a table of recipes, like so: recipe1 item1 recipe1 item2 ... recipe1 itemn recipe2 item1 You could then fetch all the items for a given recipe, and loop through the returned results (an array), concatenating the prices. Alternately, you store all your items in an array for each recipe and loop through the array ... Here's an example of what I'm using, where the prompts for a page are stored in a table. This lets me handle different languages very easily: //all the connection stuff is up above ... $cLLangCode = "GB"; $cPageName = "user_bid"; $arr_lbl = array(); $sql = "select cLblName,cLblText from prompt
                        where cLangCode = '$cLangCode' and cPageName = '$cPageName'";
$result = mysql_query( $sql, $db )
        or die( "Unable to fetch prompts for page $cPageName." );
while( $row = mysql_fetch_array( $result ) ) {
        $arr_lbl[$row[cLblName]] = $row[cLblText];
} In the $arr_lbl assignment, following the while(), you could execute queries for individual item costs, and add them up. Essentially nest the same code inside the while, except that it's executing for one ingredient at a time. If you will have to a lot of this, seriously consider PostgreSQL (or similar db) as it supports subqueries, and this situation cries out for their use. This single line would give you the sum of all your ingredients:
        Select sum(price) from items where item in (select item from recipe where recipe_id = "choc_chip")
Database querying isn't a problem, as it's all server side and really fast, no traffic across the wire. If you have a lot of complex queries, really consider something other than MySQL. Cheers - Miles Thompson http://www.cqagroup.ca At 03:31 PM 12/3/2001 +0100, =?iso-8859-2?Q?Alen_Nonkovi=E8?= wrote:
Hello, I am trying to make a something like a cooking recipe with some calculations. My problem is too much database querying. Is it really a problem??? Let's suppose there is a table with items and prices:
item1    price1
item2    price2
item3    price3
... Then I have to calculate some new indegrient price, which is a result of calculating other prices: (ex: $new_price1 = 2*$price1 + $price2 ) To get wanted prices I used standard query: ---------------------------------------------------- $result = mysql_query ("SELECT price from price_list where id = '01'"); $row = mysql_fetch_array($result); $price1 = $row["price"]; $result = mysql_query ("SELECT price from price_list where id = '02'"); $row = mysql_fetch_array($result); $price2 = $row["price"]; //...and so on for about 30 indegrients. And on the end: $new_price1 = 2*$price1 + $price2; print "$new_price1"; ---------------------------------------------------------- But, is there a quicker way to do this? Am I doing maybe the wholistic mistake in process? Or this is just OK? Please, help cooking the soup ;) regards, Alen


« previous php.general (#76380) next »