цикл foreach не добавляет еще одну строку в таблицу HTML - PullRequest
0 голосов
/ 24 мая 2019

У меня есть задание настроить корзину для акций.Запрос API работает, и я могу добавить количество в корзину.Цикл foreach отображает 1 строку в таблице HTML.Если я выполню другой запрос API для котировки акций и добавлю количество для второй котировки, таблица не отобразит вторую строку.

Я использую текущую версию XAMPP, PHP и MYSQL.Этот проект является упражнением в том, как использовать переменные SESSION для хранения данных между страницами.

Вот мой файл browse.php

<code>
<?php
session_start();

require 'head.php';
require 'nav.php';

if(!isset($_SESSION['cart']))
{
    $_SESSION['cart'] = array();
}

if(isset($_GET['clear']))
{
    $_SESSION['cart'] = array();
}

if(isset($_GET['stockID']))
{
    $stockID = $_GET['stockID'];
    $quan = $_GET['quan'];
    $name = $_GET['name'];
    $symbol = $_GET['symbol'];
    $price = $_GET['price'];

    if(!isset($_SESSION['cart'][$stockID]))
    {
        $_SESSION['cart'][$stockID]['quan'] = $quan;
        $_SESSION['cart'][$stockID]['name'] = $name;
        $_SESSION['cart'][$stockID]['symbol'] = $symbol;
        $_SESSION['cart'][$stockID]['price'] = $price;      
    }
    else
    {
        $_SESSION['cart'][$stockID]['quan'] += $quan;
    }
}

if(isset($_GET['quote']))
{
    $stock = $_GET['quote'];

    //base URL
    $service_url = "https://api.iextrading.com/1.0/stock";
    //add endpoint
    $service_url .= "/$stock/batch?types=quote";
    //add search val

    //useful for debug - uncomment if needed
    //echo $service_url."<br>";

    //Use CURL to fetch the response
    $curl = curl_init($service_url);

    //had to set up several options to make this work
    $user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
    curl_setopt($curl, CURLOPT_URL, $service_url);
    curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);

    $curl_response = curl_exec($curl);
    if ($curl_response === false) 
    {
        $info = curl_getinfo($curl);
        curl_close($curl);
        die('error occurred during curl exec. Additional info: ' . var_export($info));
    }
    curl_close($curl);

    $decoded = json_decode($curl_response, 1);

    if(!empty($decoded))
    {
        $symbol = $decoded['quote']['symbol'];  
        $name = $decoded['quote']['companyName'];
        $price = $decoded['quote']['latestPrice'];      
        /*
        echo $symbol."<br>";
        echo $name."<br>";
        echo $price."<br>";
        */
        echo"<pre>";
        print_r($_SESSION['cart']);
        echo"
"; echo"

Портфель акций

"; echo"

Просмотр котировок акций

"; echo" Фондовый символ Название компании Цена за акцию Количество $ символ $ name $ price Добавить в корзину ";} else {echo" Список не найден ";}}?>Фондовый символ

А это мой файл cart.php

<code>
p
session_start();

require 'head.php';
require 'nav.php';

if(!isset($_SESSION['cart']))
{
    $_SESSION['cart'] = array();
}

if(isset($_GET['clear']))
{
    $_SESSION['cart'] = array();
}

if(isset($_GET['stockID']))
{
    $stockID = $_GET['stockID'];
    $quan = $_GET['quan'];

    $_SESSION['cart'][$stockID]['quan'] = $quan;

    if($_SESSION['cart'][$stockID]['quan'] == 0)
    {
        unset($_SESSION['cart'][$stockID]);
    }   
}
?>
    <?php
        echo "<pre>";
        print_r($_SESSION['cart']);
        echo "
";?>

Портфель акций

Корзина для котировок акций

Фондовый символ Название компании Цена Количество Итого $ val) {$ sub = $ val ['quan'] * $ val ['price'];$ total + = $ sub;$ sub = "$".число_формат ($ sub, 2);$ total = "$".число_формат (всего $ 2);echo " {$ val ['symbol']} {$ val ['name']} {$ val ['price']} Обновить количество $ sub ";} // foreach?> Итого Фондовый символЯ получаю табличное представление на обеих страницах после запроса первой котировки акций. Я добавляю количество и нажимаю на кнопку добавления количества, и он покажет первый запрос в корзине. Но когда я выполняю второй запрос и пытаюсь добавить его в корзину, в таблице ничего не отображается.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...