2012-07-20 58 views
0

我在SQL中创建了一个类似于此的数据库(表)。使用PHP从数据库检索数据

x y z 
1 x1 y1 z1 
2 x2 y2 z2 

这是我创建的表格;现在我想用PHP做一些数学运算。我如何检索数据并对其进行数学运算? 如何从数据库表中获取数据并将它们保存在PHP变量中?

function ans($x1, $y2, $z2) 
{ 
#a = x1 - y2; 
#z2 = $z2 -$a; 
} 
+0

你询问如何执行select查询? – 2012-07-20 05:25:50

+0

您正在使用哪些DBMS?你是如何创建表格并加载数据的? – 2012-07-20 05:46:12

+0

我正在使用www.000webhost.com,首先我创建数据库在SQL比我使用phpmyadmin。 – 2012-07-20 07:37:27

回答

1

的代码看起来如下:

<?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"]; 
+0

请确保所有变量的转换也被考虑在内。做数学字符串必须转换为int或浮点数等 – 2012-07-20 05:44:13

+0

感谢您的回答,它帮助了我很多。 – 2012-07-20 07:37:57

+0

感谢您的回答,它帮助了我很多。你能告诉我如何从大量的行访问表中的特定元素。通过使用 。 SELECT X_colm FROM MY_TABLE WHERE ID = 2; SELECT Y_colm FROM MY_TABLE WHERE ID = 6;我想要这样的一些东西...你用while循环它将继续连续。我可以访问特定的行。 – 2012-07-20 07:43:36