在PHP中使用数学是否有任何规则。当我尝试做一些简单的数学运算时,我得到了一些数字。
这是特定的脚本
$profit = $quote_1 - $entry;
以下是完整脚本的片段
if ($productCount > 0) {
// get all the product details
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
$symbol = $row["symbol"];
$sym = strtoupper($sym);
$entry = $row["entry"];
$exit = $row["exit"];
$openclosed = $row["openclosed"];
$entrydate = $row["entrydate"];
$profit = $quote_1 - $entry;
$color = "#000000";
$positive = "";
if ($profit >= 0){
$color = "#00a900";
$positive = "+";
}
else if ($profit < 0){
$color = "#ef3600";
$positive = "";}
if(empty($symbol)) {
echo nothing;
}
else {
$open = fopen("http://quote.yahoo.com/d/quotes.csv?s=$symbol&f=sl1d1t1c1ohgv&e=.csv", "r");
$quote = fread($open, 1000);
fclose($open);
$quote = str_replace("\"", "", $quote);
$quote = explode(",", $quote);
$quote_0 = ($quote[0]);
$quote_1 = ((float)$quote[1]);
$quote_2 = ($quote[2]);
$quote_3 = ($quote[3]);
$quote_4 = ((float)$quote[4]);
$quote_5 = ((float)$quote[5]);
$quote_6 = ((float)$quote[6]);
$quote_7 = ((float)$quote[7]);
$quote_8 = ((float)$quote[8]);
echo "<ul><li><div class='wrapPicks'>
<div class='symbolPicks'>
<div class='quoteTitle'>$quote_0</div>
</div>
<div class='bgPicks'>
<div class='quote'>Entry Price: $$entry</div>
<div class='quote'>Last trade: $$quote_1</div>
<!--<div class='quote'>Date: $quote_2</div>-->
<div class='quote'>Open P/L: <div class='bigGreen'><span style=\"color: $color\">$positive $$profit </span></div></div>
<!-- <div class='quote'>Change From Previous Close: $$quote_4</div>-->
<!--<div class='quote'>High: $$quote_6</div>
<div class='quote'>Low: $$quote_7</div>
<div class='quote'>Volume: $quote_8</div>-->
</div>
</div></li></ul>";
}
现在我想到的是,雅虎数据可能会以字符串的形式出现,这可能会让人失望。我还不清楚我的MYSQL表是必须是int还是VARChAR可以接受?
答案 0 :(得分:1)
在第
行$open = fopen("http://quote.yahoo.com/d/quotes.csv?s=$symbol&f=sl1d1t1c1ohgv&e=.csv", "r");
您需要替换实际符号,而不是在查询中将其保留为字符串。也许是这样的:
$open = fopen("http://quote.yahoo.com/d/quotes.csv?s=".$symbol."&f=sl1d1t1c1ohgv&e=.csv", "r");
连接符号会有所帮助。
如果您的请求无效,您可能正在查看垃圾。
此外 - 您需要在使用它进行任何数学运算之前提出此请求 - 换句话说,您必须在使用该值计算利润之前计算quote_1
。
这是我所谈论的一个可笑的简化版本。看看你是否理解为什么这与你所做的不同,以及如何“从这里回到那里”:
<?php
$symbol = "GE";
$entry = 23;
$open = fopen("http://quote.yahoo.com/d/quotes.csv?s=".$symbol."&f=sl1d1t1c1ohgv&e=.csv", "r");
$quote = fread($open, 1000);
fclose($open);
$quote = str_replace("\"", "", $quote);
$quote = explode(",", $quote);
$lastPrice = (float)$quote[1];
$profit = $lastPrice - $entry;
echo "current ".$symbol." quote: ".$lastPrice;
echo "; entry: ".$entry."; profit: ".$profit;
?>
您可以在http://www.floris.us/SO/stocks.php看到这一点。我没有试图让它变得漂亮 - 只是让数学正确。现在输出是
current GE quote: 23.32; entry: 23; profit: 0.32
我希望它有用。