PHP - Search Forms With Min Price And Max Price
Hi
Similar TutorialsMy website, http://www.LawnBagSigns.com, has a lot of price tables, which I think, are getting bulky and hard to read. Like this price page here, I think the table might be scaring people away. So here is what I want to try - have a series of dropdown boxes where the user can choose the details a product one by one (for example, first the size, then the quantity). I want to do this in PHP and XML, and I want to avoid JavaScript since, believe it or not, not all of my website's visitors have JavaScript enabled. My problem at the moment is that the XML document is full of white scape that is screwing over my system, but I don't want to sacrifice readability by blobbing the whole xml file into one line with no spaces (because if I want to change or add something... you get the idea). So my question is, how do I get rid of the white scape? Here is the prototype I've been working on: http://www.lawnbagsigns.com/flyers-test.php The XML: Code: [Select] <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="whitespace_ripper.xsl"?> <price_table> <side>1 <qty>25 <size>3.5 x 8.5 <price> 37 </price> </size> <size>8.5 x 5.5 <price> 37 </price> </size> <size>4.25 x 11 <price> 37 </price> </size> <size>8.5 x 7 <price> 38 </price> </size> </qty> </side> <side>2 <qty>25 <size>3.5 x 8.5 <price> 37 </price> </size> <size>8.5 x 5.5 <price> 37 </price> </size> <size>4.25 x 11 <price> 37 </price> </size> <size>8.5 x 7 <price> 38 </price> </size> </qty> </side> </price_table>and the PHP code: Code: [Select] <?php //P Session function priceSelect ($path) { if (!empty($_REQUEST['Previous'])) { $_SESSION['xmlCursor'] = $_SESSION['xmlCursor']->parentNode; echo 'test1<br />'; } elseif (!empty($_REQUEST['Next'])) { $exitLoop = false; $childCursor = $_SESSION['xmlCursor']->firstChild; while ($exitLoop == false) { if ($childCursor == $_SESSION['choice']) { $_SESSION['xmlCursor'] = $childCursor; $exitLoop = true; } else { $childCursor = $childCursor->nextSibling; } } echo 'test2<br />'; } else { $_SESSION['userMadeChoices'] = array(array()); $_SESSION['xmlCursor'] = loadXML($path); echo $_SESSION['xmlCursor']->firstChild->nodeValue; echo $_SESSION['xmlCursor']->parentNode->nodeValue; echo 'test3<br />'; } $reload = $_SERVER['PHP_SELF']; echo '<form action="'.$reload.'" method="post">'; displayChoices($_SESSION['userMadeChoices']); echo 'test4<br />'; displayMenu($_SESSION['xmlCursor'], $_SESSION['userMadeChoices'] ); echo 'test5<br />'; displayButtons($_SESSION['xmlCursor']); echo 'test6<br />'; echo '</form>'; } function loadXML($path) { $xmlDoc = new DOMDocument(); $xmlDoc->load($path); $xmlDoc = $xmlDoc->documentElement; return $xmlDoc; } function displayChoices($data) { for ($i = 0; $i < count($data); $i ++) { echo $data[$i][0]; echo '</br>'; } } function displayMenu($xml, $data) { echo '<select name="choice">'; //$xml = $xml->documentElement; //$data[$xml] = foreach($xml->childNodes AS $child) { echo '<option value="' . $child->firstChild->nodeValue . '">' . $child->firstChild->nodeValue . '</option>'; } echo '</select>'; } function displayButtons($xml) { if ($xml->childNodes != null) { echo '<input type="submit" name="Previous" value="Previous Step" />'; } if ($xml->parentNode != null) { echo '<input type="submit" name="Next" value="Next Step" />'; } } function stripWhitespace ($string) { return $string; } ?> I'm using this bitcoin price ticker that is using Mt.Gox but they're no longer in service unfortunately. I'm trying to replace Mt.Gox with blockchain or something similar. Can anyone please help me fix this? Hi I have been trying to change the following for my website, so that when my unit price is "0.00" it will show "call for price" but it don't seem to work. Base on the codes, the result was it'll show both "0.00" and "call for price" on my website which is wrong. Would greatly appreciate if anyone can help Thanks in advance priceFormat(0); function priceFormat($price, $dispNull = FALSE){ if(is_numeric($price)){ global $currencyVars; $price = $price * $currencyVars[0]['value']; return $currencyVars[0]['symbolLeft'].sprintf("%.".$currencyVars[0]['decimalPlaces']."f", $price).$currencyVars[0]['symbolRight']; } elseif($dispNull == TRUE){ global $currencyVars; return $currencyVars[0]['symbolLeft'].sprintf("%.".$currencyVars[0]['decimalPlaces']."f",0.00).$currencyVars[0]['symbolRight']; } else { return "Call For Price"; } } Hi there, I have an ecommerce script that displays product prices in a drop down. I have modified the script to display prices in the drop down for other options, such as size, color etc. At the moment, the prices in the drop down display the total price of the product including any other product options. If I apply a product option to a product that does not have an additional cost, it displays Product Option ($0.00) For example, if I have a hat that is priced $3.00, it will display $3.00 in the drop down. If I apply a product option for an XL size and add $2.00, it will display $5.00 in the drop down. However, if I add a product option that does not have an option that effects the price, it will display something like: Hat RED ($0.00). The reason for this happening is because the Red option does not add an addition cost to the product. What I want to do is to hide all prices that have $0.00. I will paste my code below, but I wondered if there is an easy way using PHP that will allow me to do something like: if price == 0.00 then hide 0.00 I am new to PHP and can think the logic, but cannot work out the code. This is my code: <?php $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$HTTP_GET_VARS['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); //if ($products_options['options_values_price'] != '0') { if ($products_options['price_prefix']=='+') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $currencies->display_price($products_options['options_values_price']+$product_info['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } else if ($products_options['price_prefix']=='-') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $currencies->display_price($product_info['products_price'] - $products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } else { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } //} } if (is_string($HTTP_GET_VARS['products_id']) && isset($cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']])) { $selected_attribute = $cart->contents[$HTTP_GET_VARS['products_id']]['attributes'][$products_options_name['products_options_id']]; } else { $selected_attribute = false; } ?> <strong><?php echo $products_options_name['products_options_name'] . ':'; ?></strong><br /><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?><br /> <?php } ?> If anyone could help me out, that would be great! Thanks P.S Sorry if this message sounds confusing. Hi... have looked far and wide without success. Can someone point me in the right direction to learn how to dynamically display a price as the client adds/subtracts items from a shopping cart without refreshing the page ? Thanks I have an HTML table with the following columns: - Event - Price - # of Attendees - Total - Choose One The values are populated from a database, and I am using a loop to create the Table. The problem is that I have some syntax error where I am trying to calculate the Total Ticket Price?! Can someone help me figure what is wrong with my code? Code: [Select] <!-- Body --> <tbody> <?php // Fetch Comment record. $x=0; while (mysqli_stmt_fetch($stmt)){ //<!-- Row 1 --> echo ' <tr> <th scope="row" class="headerCol">'; echo $eventName . '<br />' . $eventLocation . '<br />' . $eventDate . ' </th> <td class="col2">' . $eventPrice . '<input type="hidden" name="eventCost[' . $x . ']" value="' . $eventPrice . '" /> </td> <td class="col3"> <select name="eventAttendees[' . $x . ']"> <option value="">--</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> </td> <td class="col4">' . $eventCost*eventAttendees[$x] . '</td> <td class="col5"> <input name="eventChosen[' . $x . ']" type="submit" value="Buy Tickets" /> </td> </tr>'; } ?> </tbody> What I am trying to do/say on each row is "Take the Event Price and multiple it times the # of Attendees selected in the Row's Drop-Down field." Thanks, Debbie the php web video script that I'm trying to modify allows Users to purchase videos successfully, however, the video price that is reflected in the db ('u_paid_videos') table (where transaction info is stored) appears to show the default video price (video_play_price from the 'config' db table) every time, instead of the accurate video price. I'm not sure if this code needs to be tweaked so that the actual price will show in the 'video_play_price' column (in 'u_paid_videos' table): // get cost video // get the default video price, to use if there is no per video play price $db->where('name', 'video_play_price'); $db_cost = $db->getOne('config'); $video_cost = (float)$db_cost->value; // the number of submitted videos - used to determine if all records were inserted $count_video = count($id_array); $user_id = $user->id; $wallet = (float)str_replace(',', '', $user->wallet); $balance = (float)str_replace(',', '', $user->balance); // add up the video prices $amount = 0; foreach ($id_array as $id) { $video_id = (int)PT_Secure($id); // get video data $video = $db->where('id', $id)->getOne(T_VIDEOS); // add the video play price if any, or the default price $amount += $video->video_play_price?$video->video_play_price:$video_cost; } // determine if the user has enough credits if( ($wallet >= $amount) OR ($balance + $wallet >= $amount) ) { $db->startTransaction(); $inserted_records = 0; foreach ($id_array as $id){ $video_id = (int)PT_Secure($id); // get video data $video = $db->where('id', $id)->getOne(T_VIDEOS); // use the video play price if any, or the default price $video_cost_new = $video->video_play_price?$video->video_play_price:$video_cost; $uploader_amount = $video_cost_new *0.50; // add data to paid table $insert_buy = $db->insert('u_paid_videos', [ 'id_user' => $user_id, 'id_video' => $video_id, 'session_key' => $_SESSION['session_key'], 'video_play_price' => (string)$video_cost, 'video_title' => $video->title, 'user_id_uploaded' => $video->user_id, 'earned_amount' => $uploader_amount ]);
hi, i have a column in a list of products called 'price'. it's a varchar column. each price is in this format 8.00 or 12.00 always with 2 decimals. when i try and sort by price it only goes by the first number, so something that's 1.00 will be next to something that's 100.00. if i make the column INT then it works, but then i can't have a decimal. anyone know how to fix this? thanks, jack Hello Guys, I check the price field on the server side and I am trying to figure out how to allow a comma in the price field example 2,300 Here is the code I use to check the price. Code: [Select] function check_Price($price,$member_id,$description,$ip){ if (isset($price) && (!is_numeric($price))) { do something here } } Thanks in Advance! Dan I have a list of products in database and some have the same itemid but a different price depending on size What i want to do i if the itemid has more than one size, take the smallest price and then add the word "From" at the beginning. I've tried using the MIN() function but can't get it to do what i want. If there is only one size it works fine but if there is more than one it just says "From 0.00" Code: [Select] while ($row = $result->fetch()) { if(!isset($items[$row['itemid']])) { $items[$row['itemid']] = $row; } $items[$row['itemid']]['sizes'][$row['size']] = $row['price']; ### CHANGED ### } foreach($items AS $subitem) { list($prodid, $itemid, $item, $size, $description, $shortdesc, $image, $price) = $subitem; //Create field for item name based upon record count if(count($subitem['sizes']) > 1) { /*$item_name_field = "<ul>\n"; foreach($subitem['sizes'] as $size => $price) ### CHANGED ### {*/ //} //$item_name_field .= "<ul>\n"; $myprice = explode(".",number_format(min($subitem['price']),2)); $item_name_field .= "<li>From ".$myprice[0].".".$myprice[1]." {$size}</li>\n"; } else { $myprice = explode(".",number_format($subitem['price'],2)); $item_name_field .= "<li><span class=\"ucprice\">£".$myprice[0]."<?span><span class=\"lcprice\">.".$myprice[1]."</span></li>\n"; } i want receive this API JSON : "https://api.cryptowat.ch/markets/binance/btcusdt/ohlc" in PHP And put it in a variable . so i did this :
<?php $json= file_get_contents('https://api.cryptowat.ch/markets/binance/btcusdt/ohlc'); $json= json_decode($json , true); foreach ($json as $row){ $price = $row['86400'] ?? ""; print_r($price) ; } and its worked ! but i want to show a specific price like : 86400 / 1122 / 0 and i don't know how ? Hi all, I'm new here (first post) so hopefully you'll all go easy on me I'm created a price comparison website for cameras and lenses. I will have around fifteen retailers on the site. Now I need to scrape each of their websites for the prices - this I can do. However, need a little help and advice on the best way to go about tackling this...is it best to create one big script or have various ones for each retailer, etc? Any help would be appreciated greatly Hey guys, I got a tough one. I've been researching for days, weeks even, to try and solve this. And I'm sure I'm going to kick myself if/when I get a solution. I've set up an ecommerce website from scratch (no prestashop, oscommerce, none of that), and I need to figure out how to decrease price on quantity. Ex; Umbrellas are $12.00 a piece. If you order 2 dozen (24) Umbrellas, they are only $10.00 a piece. I can't seem to figure out a way to make it work.. I have set up in my database the following columns. p - base price ($12) p1 - price after first increment ($10) q1 - quantity of first break (24) p2 q2 p3 q3 Hit me with your best shot. I am currently building (for my first time) a shoppingcart. Its an multidimensional array in a session that looks like this. Code: [Select] Array ( [23] => Array ( [0] => 23 [1] => 11.32.097. [2] => 635 [3] => 2 [4] => 89 ) [800] => Array ( [0] => 800 [1] => 20.40.017. [2] => 100 [3] => 1 [4] => 125 ) ) The 4th key contains the price value. What i am trying to do is get all the sub-array's 4th key value and count them together to get a total price. I tried doing this with a foreach loop but its not my strong point, sadly. I you have some time can you please take a look how to solve this? Thanks in advance, Roy hi im trying to use query to select from a table where the price is between to values that the user has to input such as min of 3 and max of 8 and return all the fields from the database where it is true im unsure how to do this but this is what i have so far
$res = pg_query ($conn, "SELECT ref,artist,composer,genre,title,album,label,price,description FROM music WHERE price = < && > "); so I have a custom store built off of PHP, JS and CSS and it sells virtual coins for a game and the coins are sent automatically by the script however I want to start offering discounts to customers via discounts codes and I currently came across this script that I have put together:
Javascript
<!-- var discnt = 0; // no default percent discount var coupons = new Array ( // place to put coupon codes "MavrkHD", "TheFUTBucks", "TOTW", "Mega", "LL" ); var coupdc = new Array ( // place to put discounts for coupon vals "10", "15", "7", "10", "20" ); var coupval = "(blanket)"; // what user entered as coupon code function ChkCoup () { // check user coupon entry var i; discnt = 0; // assume the worst for (i=0; i<coupons.length; i++) { if (coupval == coupons[i]) { discnt = coupdc[i]; // remember the discount amt alert ("This is a valid promo code! \n\n" + discnt + "%" + " discount now in effect."); return; } } alert ("'" + coupval + "' is not a valid promo code!"); } function Sterling (val) { // force to valid dollar amount var str,pos,rnd=0; if (val < .995) rnd = 1; // for old Netscape browsers str = escape (val*1.0 + 0.005001 + rnd); // float, round, escape pos = str.indexOf ("."); if (pos > 0) str = str.substring (rnd, pos + 3); return str; } function ReadForm (obj1) { // apply the discount var amt,des; amt = obj1.amount.value*1.0; // base amount des = obj1.basedes.value; // base description if (discnt > 0) { // only if discount is active amt = Sterling (amt - (amt * discnt/100.0)); des = des + " - " + discnt + "% off - COUP = " + coupval; } obj1.baseamt.value = Sterling (amt); obj1.item_name.value = des; } //--></script> PayPal Form Details <form action="https://www.paypal.com/cgi-bin/webscr" method="post" onsubmit="this.target = 'paypal'; return ReadForm (this);"> <input type="hidden" name="cmd" value="_xclick" /> <input type="hidden" name="add" value="1" /> <input type="hidden" name="business" value="<?=$functions->getPayPal();?>" /> <input type="hidden" name="item_name" value="Online Coin Currency" /> <input type="hidden" name="amount" id="amount" value="0.00" /> <input type="hidden" name="currency_code" value="GBP" /> <input type="hidden" name="baseamt" id="amount" value="0.00" /> <input type="hidden" name="basedes" value="Online Coin Currency (FUT)" /> <input type="hidden" name="custom" id="custom" value=""> <input type="hidden" name="return" value="RETURN LINK HERE";?> <input type="hidden" name="notify_url" value="<?=HOST.'files/payments/paypal.php';?>"> <input type="hidden" name="cancel_return" value="<?=HOST.'cancelled';?>"> Enter Coupon code <input type = "text" size = "10" name = "coupcode"; /> <input type="button" value="Apply code" onclick="coupval =this.form.coupcode.value; ChkCoup();" /><br/><br/> <input type="image" id="xx" src="https://www.paypalobjects.com/WEBSCR-640-20110306-1/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" onclick="CalculateOrder(this.form)" alt="PayPal - The safer, easier way to pay online!"> <img alt="" border="0" src="https://www.paypalobjects.com/WEBSCR-640-20110306-1/en_US/i/scr/pixel.gif" width="1" height="1"> </form>So, it all works like sending information to PayPal I have one issue about PayPal displaying the calculated prices. For example: if I take out the id of amount and baseamt and just leave value and put a value of 12.99 and then go on my store and go through the process of buying the virtual coins and then get to the discount code area and proceed to paypal I will get a discount price to pay at paypal but when I use the id="amount" which is a variable for depending on how many coins the customer to buy it'll send that price to paypal, it doesn't discount the price and I have been trying endlessly to fix this! help? Thanks. Hey guys,
I need some help with a simple script a friend wrote for me but isn't returning the correct values. I'm looking to get this script working but my PHP skills are abysmal and I can't for the life of me figure out whats the best way to do this. I've tried contacting my friend but he's moving cross-country so I'm hoping you guys can give me some advice.
The script is supposed to return a total shipping price based on the weight of products that are passed to it via an API and the location of the visitor. There are a total of 3 different products (Product A, Product B, Product C) each with it's own weight in grams and it's own shipping rate. The script is needs to follow the following rules:
When 1 product (either Product A, B, or C) is in the cart it returns the full fixed shipping price for either US or International Shipping based on $isInternational
When 2 or more of Product A or B are added to the cart the full shipping is taken for the heaviest item and a fixed price is added for each additional item (Product and B each have their own fixed prices)
When Product C is added to the cart it returns a fixed based on US or International (Product C ships separately and doesn't depend on the weight/prices of Product A or B)
The product weights/prices a
Product A: |