假设我有一个SP,其SELECT声明如下,
SELECT product_id, product_price FROM product
WHERE product_type IN ('AA','BB','CC');
Run Code Online (Sandbox Code Playgroud)
但是数据转到该IN子句必须通过包含值字符串的单个变量.下面有东西链接
SELECT product_id, product_price FROM product
WHERE product_type IN (input_variables);
Run Code Online (Sandbox Code Playgroud)
但它没有那样工作.知道怎么做吗?
我正在循环MYSQL存储过程中的游标结果集.我面临的问题是循环总是在最后一次记录中运行两次.这是我的代码,
BEGIN
DECLARE not_found_creadit INT DEFAULT 0;
DECLARE cur_credit CURSOR FOR
SELECT customer_id, amount, status, user_type, employee, note FROM credit WHERE status = 'approved' AND customer_id = int_cust_id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET not_found_creadit = 1;
OPEN cur_credit;
SET not_found_creadit = 0;
credit_loop : LOOP
IF not_found_creadit THEN
CLOSE cur_credit;
LEAVE credit_loop;
END IF;
FETCH cur_credit INTO vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
SELECT vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
......
......
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
意味着如果我有3条记录,循环运行4次,如果它是10条记录循环运行11次,等等.任何想法发生在这里?
我正在观看在angularjs.org上发表的免费互动课程,以学习Angular,使用Angular js.
在他们说的第一章的这个课程中,使用AngularJS的一个主要原因是,它可以构建"响应式"Web应用程序.(我知道"响应式设计",但这完全是一个不同的东西),并解释说,使用Angular你不需要刷新你的网页来更新它来自网络服务器的数据(他们告诉你这个,就像这是全新的科技!).
我认为与过去10年我们使用Ajax做的事情不一样吗?或者这是完全不同的东西?
请帮助我理解这个因为我是AngularJS的新手.
我在local.xml中遇到了一些配置问题,我无法加载我的magento前端和我的管理面板,然后我修复了我在local.xml中遇到的问题,并且为了让我的新配置被加载,我删除了所有内容/ var/cache甚至/ var/session文件夹中有什么内容.但令我惊讶的是,Magento仍然加载旧的local.xml设置.
我尝试重新启动apache并清除浏览器缓存,没有任何作用.
有任何想法吗??
我知道像PHP这样的语言有一个switch case控制结构,支持在单个case语句中进行多次验证,比如
Switch $x {
case 1,2,3:
$a = 0;
break;
case 5,6:
$a = 1;
break;
}
Run Code Online (Sandbox Code Playgroud)
同样可以在MYSQL中完成吗?我试过下面,虽然真的没有用:(
CASE vc_shape
WHEN ('02' OR '51') THEN SET dc_square_1 = dc_square_1 + dc_row_total;
WHEN ('06' OR '30' OR 83) THEN SET dc_square_2 = dc_square_2 + dc_row_total;
.....
.....
ELSE
BEGIN
END;
END CASE;
Run Code Online (Sandbox Code Playgroud)
任何想法我怎样才能做到这一点?
我有一个控制器操作,连接到XML源并从第三方应用程序带来一些数据.现在我希望这些数据能够在我的Magento产品页面中显示.控制器操作被父模板文件调用为ajax调用,并且数据必须呈现到其中一个子模板中.
我知道如果我有一个模型然后可以与一个块交谈,那么数据可以在模板级别获得.但不确定如何通过控制器操作完成此操作.到目前为止,我设法将数据转储到子模板,而不是完全呈现的HTML.(我不想在控制器中构建HTML并将其转储到模板中,因为我认为这是不好的做法)
以下是我的控制器操作和getProduct
public function getFeedbackAction()
{
$url = 'http://3rd-party-domain/some-module/xmlfeed.php';
$xml_feed = simplexml_load_file($url);
foreach ($xml_feed as $key=>$feedback){
if ($key == "PRODUCT") {
$this->feedbacks[] = $feedback;
}
}
if ($this->getRequest()->getParam('type') == 'product'){
$sku = $this->getRequest()->getParam('sku');
if ( $sku != ""){
$this->getProductReviews($sku);
}
}
}
private function getProductReviews($sku){
foreach ($this->feedbacks as $feedback){
if ($feedback->PRODUCTCODE == $sku){
$productreviews[] = $feedback;
}
}
Zend_Debug::dump($productreviews);
//echo $this->getLayout()->createBlock('mymodule/reviews')->setTemplate('mymodule/reviews.phtml')->toHtml();
}
Run Code Online (Sandbox Code Playgroud) 在MySQL中,有没有一种方法可以更改字段的数据类型(原始数据类型除外),而无需中间表的参与?
我有一张桌子如下,
+-----+--------+-----------+----------+
| id | type_id| product_id| date |
+-----+--------+-----------+----------+
| 1 | 1 | 300 |22/01/2013|
| 2 | 1 | 800 |22/01/2013|
| 3 | 1 | 400 |30/01/2013|
| 4 | 1 | 300 |05/02/2013|
| 5 | 5 | 300 |27/02/2013|
| 6 | 1 | 300 |28/02/2013|
| 7 | 3 | 400 |12/03/2013|
| 8 | 5 | 400 |02/03/2013|
| 9 | 1 | 300 |06/03/2013|
| 10 | 1 | 400 |06/03/2013| …Run Code Online (Sandbox Code Playgroud) Magento(V 1.12)在用户登录后直接将我重定向回登录页面.如果我在按下登录按钮后查看Fierbug中的请求列表,它会显示给我,
http://dev.myweb/customer/account/loginPost/
http://dev.myweb/customer/account/
http://dev.myweb/customer/account/login/
Run Code Online (Sandbox Code Playgroud)
所以它回到登录页面.即使我尝试手动复制并粘贴http://dev.myweb/customer/account/浏览器,它也会返回登录页面.
通过问题进行一些调试后添加以下行
发生这种情况是因为会话开始时未创建前端cookie.为什么它没有被创建是问题
这只发生在我的本地环境中.真的很令人沮丧.有任何想法吗?
我想cms/index/noRoute从我的一个自定义模块的控制器操作中调用Action,我该怎么做?
我试过了,
$this->_redirectUrl('cms/index/noRoute')
Run Code Online (Sandbox Code Playgroud)
和
$this->_forward('cms/index/noRoute')
Run Code Online (Sandbox Code Playgroud)
重定向网址的变化也很少,例如"*/cms/index/noRoute"等,其中没有变化.我该怎么做?
我有一个集合,其中包含一行数据.如果我这样做,
$collection->getData();
Run Code Online (Sandbox Code Playgroud)
它给我一个像下面的数组,
array(1) {
[0] => array(3) {
["id"] => string(1) "1"
["field1"] => string(10) "Field 1 Data"
["field2"] => string(10) "Field 2 Data"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,$collection->getField1()它说Undefined Method.据我所知,php magic getter应该像这样工作.不是吗?
任何想法如何在没有foreach构造的情况下获得此值.
我已经知道如何使用Magento系列进行简单的订购.但是这次我想做这样的事情,
SELECT * FROM table WHERE filed LIKE '%abc%'
ORDER BY SUBSTRING(field, 1, 2) DESC LIMIT 10
Run Code Online (Sandbox Code Playgroud)
那么如何在我的order by子句中添加SUBSTRING函数呢?有任何想法吗?
我正在尝试获取不同商店视图的类别页面的页面URL密钥.基本上我在Magento安装中设置了3个商店.现在我想在我的类别页面中实现hrefhang标签.但是当我在默认存储区时,我无法访问其他商店视图的类别URL键,反之亦然.
我有类别对象,我来自,
$category = Mage::registry('current_category');
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?