- 13, May 2024
- #1
Не знаю, как именно задать этот вопрос, поэтому попытаюсь объяснить.
Я пытаюсь отобразить данные о сумме дивидендов для каждой акции (символ акции, хранящийся в базе данных) внутри таблицы.
Эти данные о дивидендах поступают из API IEX, и хотя я могу нормально выводить результаты и просто получать их в списке, например: FB: 0 GOOGL: 0 AAPL: 2.52 Я не знаю, как отобразить их внутри строку таблицы для каждой из этих акций.
Я просто получаю AAPL: 2,52 для всех строк.
Таким образом, по сути, создается впечатление, что в какой-то момент он не знает, какие данные получить по какой акции, и просто печатает AAPL для всех трех.
Это код (некоторые из них скрыты, чтобы сделать его короче):
Я пытаюсь отобразить данные о сумме дивидендов для каждой акции (символ акции, хранящийся в базе данных) внутри таблицы.
Эти данные о дивидендах поступают из API IEX, и хотя я могу нормально выводить результаты и просто получать их в списке, например: 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 emptyif(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 emptyelse{?><h1><center><?php
echo "Portfolio Empty";?></h1></center><?php
die();}
mysqli_close($conn);
// Adding all stock names in one variable to enable API callfor($a=0;$a<$y;$a++){
$z = $z.$sym[$a].',';}
$z = rtrim($z,",");
// API call
$contents = file_get_contents("[URL='https://lumtu.com/yti/PQZZQPVJodHRwOi8vbWFya2V0ZGF0YS53ZWJzb2wuYmFyY2hhcnQuY29tL2dldFF1b3RlLmpzb24_a2V5PSUyNGtleSZzeW1ib2xzPSUyNHombW9kWbm']http://marketdata.websol.barchart.com/getQuote.json?key=$key&symbols=$z&mode=R[/URL]");
$contents = json_decode($contents,true);
$div = file_get_contents("[URL='https://lumtu.com/yti/dQYYQdGVodHRwczovL2FwaS5pZXh0cmFkaW5nLmNvbS8xLjAvc3RvY2svbWFya2V0L2JhdGNoP3N5bWJvbHM9JTI0eiZ0eXBlcz1zdGF0cyZmaWx0ZXI9ZGl2aWRlbmRSmbl']https://api.iextrading.com/1.0/stock/market/batch?symbols=$z&types=stats&filter=dividendRate[/URL]");
$div = json_decode($div,TRUE);foreach($div as $divi => $value){
echo '<br/>'. $divi.' : '. $value['stats']['dividendRate'];}
// Check successfull API callif($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 unsuccessfulelse{?><h1><center>"Error retreiving data.
Please try again later."</center></h1><?phpdie();}?><!-- Generating Output in tabular format --><tableclass='table table-responsive'><trclass='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><?phpfor($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]){?><iclass="fa fa-arrow-down"><?php echo $lastprice[$x]-$pri[$x];}elseif($pri[$x]< $lastprice[$x]){?></i><iclass="fa fa-arrow-up"><?php echo $lastprice[$x]-$pri[$x];?></i><?php}else
echo '0';?></td>
<td><?php if($pri[$x]> $lastprice[$x]){?><iclass="fa fa-arrow-down"><?php echo ($lastprice[$x]-$pri[$x])* $vol[$x];}elseif($pri[$x]< $lastprice[$x]){?></i><iclass="fa fa-arrow-up"><?php echo ($lastprice[$x]-$pri[$x])* $vol[$x];?></i><?php}else
echo '0';?></td><td><center><buttonid="opener1"class='btn btn-success'>Click to view advanced data</button></center><divid="dialog1"title="Расширенные данные компании">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 для всех.