Попытка запросить для клиентов значение «компания» в Magento 1,7 БД - PullRequest
0 голосов
/ 03 февраля 2019

Я искал решение для этого, и все, что я нахожу, кажется слишком сложным для того, что я пытаюсь сделать.

Я пытаюсь получить список всех своих клиентов, принадлежащих к группе клиентов №2.Насколько мне известно, эта часть работает нормально.

Далее я пытаюсь найти их заказы и вывести названия их компаний.Здесь я думаю, что в моем коде есть ошибка, приводящая к зависанию.

Таким образом, конечной целью является список всех названий компаний для клиентов, принадлежащих к группе 2.

Я пытаюсьсделать это с помощью запросов SQL.Веб-страница просто зависает при загрузке.Однажды мне удалось отобразить некоторые данные, но они были неполными.

Ниже приведено то, что у меня есть.Можете ли вы взглянуть и посмотреть, что может быть не так?Я надеюсь, что это просто неуместно;или что-то типа того.

* Я не вставлял детали соединения из соображений безопасности, но код подключается к БД без проблем.

<?php
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    } 



//Run a Query to get all wholesale customer IDs

$sql1 = "SELECT * FROM `customer_entity` WHERE `group_id` = 2";
$customerIDs = $conn->query($sql1);


    //so now that we have the wholesale customer IDs we are going to search 
    their orders for their company names.
    while( $row1 = $customerIDs->fetch_assoc() )
    {



        //Run a query to get a list of orders that the customer has placed
        $sql2 = "SELECT * FROM `sales_flat_order_address` WHERE 
        `customer_id` = " . $row1["entity_id"] ."";
        $customerOrders = $conn->query($sql2);


        // Echo the orders company name
        while( $row2 = $customerOrders->fetch_assoc() )
        {


            //Check to see if the name is NULL 
            if($row2['company'] !== NULL)
            {
                //display the company name.
                echo $row2['company'] . "</br>";

            }

        }



}

//close the connection
mysqli_close($conn);

?>

1 Ответ

0 голосов
/ 03 февраля 2019

конечной целью является список всех названий компаний для клиентов, принадлежащих к группе 2

Этого можно достичь с помощью простого JOIN редактируемого запроса.При просмотре вашего кода это должно быть:

SELECT DISTINCT s.company
FROM 
    customer_entity c
    INNER JOIN sales_flat_order_address s ON s.customer_id = c.entity_id
WHERE c.group_id = 2

Этот запрос извлечет всех пользователей в группе 2, затем выберет все их заказы и, наконец, выведет все (отдельные) соответствующие компании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...