I received this great solution to a recordset sort problem I was having. I now need to add this form to another page where I need to an additional parameter of 'merchant'. I thought I could simply add the parameter into the query but it's not working.
The original recordset sort query - this part works:
$sortby_rsProductsDiscount
= "ASC";
if (isset($_GET['sort'])) {
$sortby_rsProductsDiscount
= (get_magic_quotes_gpc()) ? $_GET['sort'] : addslashes($_GET['sort']);
}
$orderby_rsProductsDiscoun
t = "price";
if (isset($_GET['order'])) {
$orderby_rsProductsDiscoun
t = (get_magic_quotes_gpc()) ? $_GET['order'] : addslashes($_GET['order'])
;
}
$colname2_rsProductsDiscou
nt = "1";
if (isset($_GET['subcategory'
])) {
$colname2_rsProductsDiscou
nt = (get_magic_quotes_gpc()) ? $_GET['subcategory'] : addslashes($_GET['subcateg
ory']);
}
mysql_select_db($database_
golena_IDB
db, $golena_IDBdb);
if( isset($_REQUEST['OrderBy']
) && !empty($_REQUEST['OrderBy'
]) )
$query_rsProductsDiscount = sprintf("SELECT ((IDBdb.retail_price-IDBdb
.price)/ID
Bdb.retail
_price) AS discount, IDBdb.name, IDBdb.shortDescription, IDBdb.merchant_display, IDBdb.retail_price, IDBdb.price, IDBdb.url, IDBdb.thumbnail, IDBdb.productID, IDBdb.category, IDBdb.category_display, IDBdb.subcategory, IDBdb.subcategory_display,
IDBdb.merchant FROM IDBdb WHERE (((IDBdb.subcategory)='%s'
)) ORDER BY %s", $colname2_rsProductsDiscou
nt,$_REQUE
ST['OrderB
y']);
else
$query_rsProductsDiscount = sprintf("SELECT ((IDBdb.retail_price-IDBdb
.price)/ID
Bdb.retail
_price) AS discount, IDBdb.name, IDBdb.shortDescription, IDBdb.merchant_display, IDBdb.retail_price, IDBdb.price, IDBdb.url, IDBdb.thumbnail, IDBdb.productID, IDBdb.category, IDBdb.category_display, IDBdb.subcategory, IDBdb.subcategory_display,
IDBdb.merchant FROM IDBdb WHERE (((IDBdb.subcategory)='%s'
)) ORDER BY %s %s", $colname2_rsProductsDiscou
nt,$orderb
y_rsProduc
tsDiscount
,$sortby_r
sProductsD
iscount);
$query_limit_rsProductsDis
count = sprintf("%s LIMIT %d, %d", $query_rsProductsDiscount,
$startRow_rsProductsDiscou
nt, $maxRows_rsProductsDiscoun
t);
$rsProductsDiscount = mysql_query($query_limit_r
sProductsD
iscount, $golena_IDBdb) or die(mysql_error());
$row_rsProductsDiscount = mysql_fetch_assoc($rsProdu
ctsDiscoun
t);
if (isset($_GET['totalRows_rs
ProductsDi
scount']))
{
$totalRows_rsProductsDisco
unt = $_GET['totalRows_rsProduct
sDiscount'
];
} else {
$all_rsProductsDiscount = mysql_query($query_rsProdu
ctsDiscoun
t);
$totalRows_rsProductsDisco
unt = mysql_num_rows($all_rsProd
uctsDiscou
nt);
}
$totalPages_rsProductsDisc
ount = ceil($totalRows_rsProducts
Discount/$
maxRows_rs
ProductsDi
scount)-1;
***Problem Below***
Now I tried adding an additional parameter - 'merchant' to the query - but I am getting the following error: "Warning: sprintf() [function.sprintf]: Too few arguments in /home/golena/public_html/t
hefrugalde
signer.com
/viewprodu
cts_m.php on line 120
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 10' at line 1"
Here is the query I modified with the additional merchant parameter - this is not working.
$colname_rsProducts = "1";
if (isset($_GET['merchant']))
{
$colname_rsProducts = (get_magic_quotes_gpc()) ? $_GET['merchant'] : addslashes($_GET['merchant
']);
}
$sortby_rsProducts = "ASC";
if (isset($_GET['sort'])) {
$sortby_rsProducts = (get_magic_quotes_gpc()) ? $_GET['sort'] : addslashes($_GET['sort']);
}
$orderby_rsProducts = "price";
if (isset($_GET['order'])) {
$orderby_rsProducts = (get_magic_quotes_gpc()) ? $_GET['order'] : addslashes($_GET['order'])
;
}
$colname2_rsProducts = "1";
if (isset($_GET['subcategory'
])) {
$colname2_rsProducts = (get_magic_quotes_gpc()) ? $_GET['subcategory'] : addslashes($_GET['subcateg
ory']);
}
mysql_select_db($database_
golena_IDB
db, $golena_IDBdb);
if( isset($_REQUEST['OrderBy']
) && !empty($_REQUEST['OrderBy'
]) )
$query_rsProducts = sprintf("SELECT ((IDBdb.retail_price-IDBdb
.price)/ID
Bdb.retail
_price) AS discount, IDBdb.name, IDBdb.shortDescription, IDBdb.merchant_display, IDBdb.retail_price, IDBdb.price, IDBdb.url, IDBdb.thumbnail, IDBdb.productID, IDBdb.category, IDBdb.category_display, IDBdb.subcategory, IDBdb.subcategory_display,
IDBdb.merchant FROM IDBdb WHERE (((IDBdb.subcategory)='%s'
)) AND (((IDBdb.merchant)='%s')) ORDER BY %s", $colname2_rsProducts,$_REQ
UEST['Orde
rBy']);
else
$query_rsProducts = sprintf("SELECT ((IDBdb.retail_price-IDBdb
.price)/ID
Bdb.retail
_price) AS discount, IDBdb.name, IDBdb.shortDescription, IDBdb.merchant_display, IDBdb.retail_price, IDBdb.price, IDBdb.url, IDBdb.thumbnail, IDBdb.productID, IDBdb.category, IDBdb.category_display, IDBdb.subcategory, IDBdb.subcategory_display,
IDBdb.merchant FROM IDBdb WHERE (((IDBdb.subcategory)='%s'
)) AND (((IDBdb.merchant)='%s')) ORDER BY %s %s", $colname2_rsProducts,$orde
rby_rsProd
ucts,$sort
by_rsProdu
cts);
$query_limit_rsProducts = sprintf("%s LIMIT %d, %d", $query_rsProducts, $startRow_rsProducts, $maxRows_rsProducts);
$rsProducts = mysql_query($query_limit_r
sProducts,
$golena_IDBdb) or die(mysql_error());
$row_rsProducts = mysql_fetch_assoc($rsProdu
cts);
if (isset($_GET['totalRows_rs
Products']
)) {
$totalRows_rsProducts = $_GET['totalRows_rsProduct
s'];
} else {
$all_rsProducts = mysql_query($query_rsProdu
cts);
$totalRows_rsProducts = mysql_num_rows($all_rsProd
ucts);
}
$totalPages_rsProducts = ceil($totalRows_rsProducts
/$maxRows_
rsProducts
)-1;
Thank you