gpt4 book ai didi

php - 根据存储的数据库值显示表内 API 的数组结果

转载 作者:行者123 更新时间:2023-11-29 18:00:46 25 4
gpt4 key购买 nike

不知道如何准确地提出这个问题,所以让我尝试解释一下。

我试图在表格内显示每只股票(存储在数据库中的股票代码)的股息金额数据。该股息数据来自 IEX API,虽然我可以正常回显结果并将它们放入列表中,如下所示:

FB : 0
GOOGL : 0
AAPL : 2.52

我不知道如何在表格行中显示每只股票的它们。我刚刚得到所有行的 AAPL : 2.52 。因此,从本质上看,代码在某些时候似乎不知道要获取哪些股票的哪些数据,而只是为这三个股票打印 AAPL。

这是相关的代码片段:

<?php
// Initialising variables to store extracted information
$name = [];
$symbol = [];
$open = [];
$close = [];
$high = [];
$low = [];
$lastprice = [];
$y = 0;
$z = '';
$key = "93dcc722279c3a7577f248b09ef6167f";

$memberid = $_SESSION['memberID'];
$sql = "SELECT * FROM portfolio WHERE memberID = $memberid";
$result = mysqli_query($conn, $sql);

// Check if databse is empty
if (mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_assoc($result))
{
$sym[$y] = $row["stocks_symbol"];
$pri[$y] = $row["price"];
$vol[$y] = $row["quantity"];
$id[$y] = $row["memberid"];
$y += 1;
}
}
// If database empty
else
{
?><h1><center><?php
echo "Portfolio Empty";
?></h1></center><?php
die();
}
mysqli_close($conn);

// Adding all stock names in one variable to enable API call
for($a=0;$a<$y;$a++)
{
$z = $z.$sym[$a].',';
}

$z = rtrim($z,",");


// API call
$contents = file_get_contents("http://marketdata.websol.barchart.com/getQuote.json?key=$key&symbols=$z&mode=R");
$contents = json_decode($contents, true);

$div = file_get_contents("https://api.iextrading.com/1.0/stock/market/batch?symbols=$z&types=stats&filter=dividendRate");
$div = json_decode($div,TRUE);
foreach($div as $divi => $value) {
echo '<br/>'. $divi.' : '. $value['stats']['dividendRate'];
}

// Check successfull API call
if($contents["status"]["code"] == 200)
{
foreach($contents['results'] as $result)
{
array_push($name,$result['name']);
array_push($symbol,$result['symbol']);
array_push($open,$result['open']);
array_push($close,$result['close']);
array_push($high,$result['high']);
array_push($low,$result['low']);
array_push($lastprice,$result['lastPrice']);
}

}
// If API call unsuccessful
else
{
?>
<h1><center>"Error retreiving data. Please try again later."</center></h1>
<?php
die();
}
?>
<!-- Generating Output in tabular format -->
<table class='table table-responsive'>
<tr class='head warning'>
<td>Name</td>
<td>Symbol</td>
<td>Open</td>
<td>Close</td>
<td>High</td>
<td>Low</td>
<td>Last Price</td>
<td>Price Bought</td>
<td>Quantity</td>
<td>Change Per Stock</td>
<td>Profit/Loss</td>
<td>Advanced Data</td>
<td>Dividend</td>
</tr>
<?php
for($x=0;$x<$y;$x++)
{?>
<tr>
<td><?php echo $name[$x]; ?></td>
<td><?php echo $symbol[$x]; ?></td>
<td><?php echo $open[$x]; ?></td>
<td><?php echo $close[$x]; ?></td>
<td><?php echo $high[$x]; ?></td>
<td><?php echo $low[$x]; ?></td>
<td><?php echo $lastprice[$x]; ?></td>
<td><?php echo $pri[$x]; ?></td>
<td><?php echo $vol[$x]; ?></td>
<td><?php
if($pri[$x] > $lastprice[$x])
{?>
<i class="fa fa-arrow-down">
<?php echo $lastprice[$x]-$pri[$x];
}
else if($pri[$x] < $lastprice[$x])
{?>
</i>
<i class="fa fa-arrow-up">
<?php echo $lastprice[$x]-$pri[$x];
?></i><?php
}
else
echo '0';
?></td>

<td><?php
if($pri[$x] > $lastprice[$x])
{?>
<i class="fa fa-arrow-down">
<?php echo ($lastprice[$x]-$pri[$x]) * $vol[$x];
}
else if($pri[$x] < $lastprice[$x])
{?>
</i>
<i class="fa fa-arrow-up">
<?php echo ($lastprice[$x]-$pri[$x]) * $vol[$x];
?></i><?php
}
else
echo '0'; ?>
</td>
<td><center><button id="opener1" class='btn btn-success' >Click to view advanced data</button></center>
<div id="dialog1" title="Advanced Company Data">Company Description:<br></div>
<script>
$("#dialog1").dialog({
autoOpen: false
});
$("#opener1").click(function() {
$("#dialog1").dialog("open", "modal", true );
});
</script>
</td>

<td>
<?php echo '<br/>'. $divi.' : '. $value['stats']['dividendRate']; ?>
</td>

</tr>
<?php } ?>
</table>

简而言之,我要询问表中最后一个 td 以及如何更改它,以便它显示行中正确符号的股息金额,而不是 AAPL 为所有人。

最佳答案

您正在使用$divi$value在最后<td /> 。这些是来自 foreach 的变量位于顶部 ( foreach($div as $divi => $value) ),它们的值是从 foreach 循环的最后一次迭代中设置的。

在你的最后一个 <td /> ,您应该使用与您所在循环相关的值,for($x=0;$x<$y;$x++) 。看起来你想要 $symbol[$x]$div[$symbol[$x]] .

不过,您的代码需要大量工作。继续练习。

关于php - 根据存储的数据库值显示表内 API 的数组结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48369133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com