Заполните таблицу HTML с двумя столбцами одним набором результатов PHP - PullRequest
4 голосов
/ 05 июня 2019

Пожалуйста, прости меня, я новичок в PHP.

Я пытаюсь заполнить таблицу из двух столбцов информацией об инвентаризации. С моим текущим кодом у меня есть изображение ниже: Inventory

Я бы хотел, чтобы в этой таблице было два магазина рядом друг с другом. то есть хранить номер 2 и хранить номер 7 в строке таблицы в таблице, затем хранить 10 и 11 в одной строке и т. д. Ниже приведен код, который я использую для достижения этой цели:

global $wpdb;

$result = $wpdb->get_results( 
    $wpdb->prepare( "
        SELECT STORE_NAME,REPLACE(STORE_NAME, ' ', '-') as STOREURL, INVENTORY, STORE_NUMBER FROM StoreInventory 
        WHERE SKU = %s", 
        $product_sku 
    ) 
);

if ($result){
    echo '<table class=\'inventory\'>';
    foreach($result as $row) {
        echo '<tr><td><div><a href=\'https://mystore.com/stores/'. $row->STOREURL . '\' target=\'_parent\'>Store Number: ' . $row->STORE_NUMBER . '</a><br/>' .$row->INVENTORY. ' on hand. </div></td></tr>';
    }
    echo '</table>';
} else {
    echo '<table class=\'nostock\'><td>This item is out of stock, check back later for updated information!</td></table>';
}

Проблема, с которой я столкнулся, заключается в том, что я перебираю набор записей строка за строкой и добавляю данные в каждую строку. Я попытался создать цикл внутри цикла, который не даст мне правильных результатов.

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

Любой совет или указание было бы большой помощью.

Ответы [ 2 ]

2 голосов
/ 05 июня 2019

Относительно простым подходом было бы создание фиктивной переменной для хранения столбца. EX:

$column_number = 0;
echo '<table class=\'inventory\'><tr>';
foreach($result as $row) {
    echo '<td><div><a href=\'https://mystore.com/stores/'. $row->STOREURL . '\' target=\'_parent\'>Store Number: ' . $row->STORE_NUMBER . '</a><br/>' .$row->INVENTORY. ' on hand. </div></td>';
    $column_number += 1;
    if ($column_number == 2) {
        echo '</tr><tr>';
        $column_number = 0;
    }
}
echo '</tr></table>';
0 голосов
/ 06 июня 2019

Окончательный ответ на основе ответа ARubiksCube:

if ($result){
    $column_number = 0;
    echo '<table class=\'inventory\'><tr>';
    foreach($result as $row) {
        echo '<td \' width=\'50%\' ><div><a href=\'https://shopliquornl.com/stores/'. $row->STOREURL . '\' target=\'_parent\'>' . $row->STORE_NAME . '</a><br/>' .$row->INVENTORY. ' on hand</div></td>';
        $column_number += 1;
        if ($column_number == 2) {
            echo '</tr><tr>';
            $column_number = 0;
        }
    }
    echo '</table>';
} else {
    echo '<table class=\'nostock\'><td>This item is out of stock, check back later for updated information!</td></table>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...