特定$ _POST

时间:2018-02-24 19:51:52

标签: php

我知道如何纠正这个元素,因为当我删除一个产品时,这是表中的所有行都被删除在选项表中。 我测试的只有一个值为262,但我可以有一些。

如果您需要更多信息。告诉我。

谢谢

我的产品目录中的类删除一个或一些产品。 最后,班级称之为钩子。

这门课很好用。 看看这个:$ OSCOM_Hooks->电话('产品',' DeleteAll');这个元素允许在其他目录中使用它来删除其他表中的products_id(如特价,选项,收藏夹....)

产品类删除产品(一些产品)。

class DeleteAll extends \ClicShopping\OM\PagesActionsAbstract {
    protected $app;
    protected $selected;
    protected $cPath;

    public function __construct(){
        $this->app = Registry::get('Products');

        $this->selected = $_POST['selected'];
        $this->cPath = HTML::sanitize($_GET['cPath']);
    }

    public function execute()  {
        $OSCOM_ProductsAdmin = Registry::get('ProductsAdmin');
        $OSCOM_Hooks = Registry::get('Hooks');

        if (!is_null($this->selected)) {
            foreach ($this->selected as $items) {
                if (isset($items)) {
                    $Qcheck = $this->app->db->prepare('select count(*)
                            from :table_products_to_categories
                    where products_id = :products_id
                    ');
                    $Qcheck->bindInt(':products_id', (int)$items);
                    $Qcheck->execute();

                    if ($Qcheck->rowCount() > 0) {
                        $OSCOM_ProductsAdmin->removeProduct($items);
                        $OSCOM_Hooks->call('Products','DeleteAll');
                    }
                }
            }
        }
        $this->app->redirect('Products&cPath=' . $this->cPath);
    }
}

选项类,其中有一个产品ID表

当我选择一个或一些要删除的产品时,这个类给我一个问题。该表的行全部删除。

结果var_dump($item)

/.../Save.php:58:null ==> correct
/.../DeleteAll.php:35:string '262' (length=3)

值为262并且它是正确的但是当执行类(下面)时,表中的所有行都将被删除。 我不明白,我只有一个值262 =项目,但表格中的所有行都被删除了。

class DeleteAll implements \OM\Modules\HooksInterface {
    protected $app;
    protected $selected;

    public function __construct() {
        if (!Registry::exists('ProductsAttributesNew')) {
            Registry::set('ProductsAttributesNew', new ProductsAttributesNewApp());
        }

        $this->app = Registry::get('ProductsAttributesNew');
        $this->selected = $_POST['selected'];
    }

    public function execute()  {
        $this->app = Registry::get('ProductsAttributesNew');

        if (isset($this->selected)) {
            foreach ($this->selected as $items) {
                if (!is_null($items) && is_numeric($items)) {
                    var_dump($items);

                    $this->app->db->delete('test_products_option', ['products_id' => (int)$items]);
                    $this->app->db->delete('test_products_option_value', ['products_id' => (int)$items]);
                }
            }
        }
    }
}

0 个答案:

没有答案