これに似たSQLでデータベース(テーブル)を作成しました。
x y z
1 x1 y1 z1
2 x2 y2 z2
これは私が作成したテーブルです。今度は、PHPを使用して計算を行いたいと思います。データを取得して計算するにはどうすればよいですか?DBテーブルからデータを取得してPHP変数に保存するにはどうすればよいですか?
function ans($x1, $y2, $z2)
{
#a = x1 - y2;
#z2 = $z2 -$a;
}
コードは次のようになります。
<?php
$con = mysql_connect("localhost","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
$xAnswer = 0;
$yAnswer = 0;
$zAnswer = 0;
$result = mysql_query("SELECT x,y,z FROM MathTable");
while($row = mysql_fetch_array($result))
{
$xAnswer = Add($row["x"],$row["y"]);
$yAnswer = Multiply($row["z"],$row["y"]);
$zAnswer = Subtract($row["z"],$row["x"]);
}
mysql_close($con);
function Add($x,$y)
{
return $x + $y;
}
function Subtract($x,$y)
{
return $x-$y;
}
function Multiply($x,$y)
{
return $x*$y;
}
function Divide($x,$y)
{
return $x/$y;
}
?>
または、次のように sql で数学を処理し、答えを変数にプルすることもできます。
SELECT (x+y) AS Add,(x-y) AS Subtract,(z/x) AS Divide FROM MathTable
レコードセットのループは次のようになります
while($row = mysql_fetch_array($result))
{
$xAnswer = $row["Add"];
$yAnswer = $row["Subtract"];
$zAnswer = $row["Divide "];
}
テーブル内のレコードの量が原因で、ループがインクリメントするたびに変数の答えが異なることに注意してください。そのため、現在の合計が必要になる場合があります。または、上記の例の変数を使用して内部で現在の合計を維持することもできます。
$xAnswer = $xAnswer + $row["Add"];
mysql_connect は非推奨になります。 http://php.net/manual/en/function.mysql-connect.php
代わりに mysqli を使用して ください http://www.php.net/manual/en/book.mysqli.php