我正在使用prestashop 1.6.0.9
我正在使用getFirstMessage()函数,该函数将由系统或客户(如果他们发送一条要显示在发票上)返回消息。但是,我在这里苦苦挣扎。
<?php
Class Order extends OrderCore {
public function getFirstMessage()
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `message`
FROM `'._DB_PREFIX_.'message`
WHERE `id_order` = '.(int)$this->id.'
ORDER BY `id_message`
');
}
}
当客户订购商品时,默认消息集是诸如“已接受付款”或“付款错误”之类的消息。
我希望这样做,因此如果该消息为“付款接受”,它不会返回任何消息,所以我这样做了。
<?php
Class Order extends OrderCore {
public function getFirstMessage()
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `message`
FROM `'._DB_PREFIX_.'message`
WHERE (`id_order` = '.(int)$this->id.')
AND (`message` != "Payment accepted")
ORDER BY `id_message`
');
}
}
但这没有用,因为它仍然返回“已接受付款”,因此我尝试了这一点。
<?php
Class Order extends OrderCore {
public function getFirstMessage()
{
$sql_val = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `message`
FROM `'._DB_PREFIX_.'message`
WHERE (`id_order` = '.(int)$this->id.')
AND (`message` != "Payment accepted")
ORDER BY `id_message`
');
if(
$sql_val == "Payment accepted"
)
{
return "No Message";
} else {
return $sql_val;
}
}
}
那也失败了。所以现在我在这里想要一些有关如何处理此问题的建议?
最佳答案
如果我可以为您提供解决方案,那么字符串比较“总是”是一个魔术,因此我可以这样进行:
<?php
public function getFirstMessage()
{
$sql_val = strtolower(parent::getFirstMessage());
if(!strcmp($sql_val, 'payment accepted')){ //
// do stuff
}
else {
// do other stuff
}
}
关于php - MySQL查询过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28320274/