Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL\u从多个表中进行查询,使用ROUND和Math_Php_Sql_Database_Html Table - Fatal编程技术网

Php MySQL\u从多个表中进行查询,使用ROUND和Math

Php MySQL\u从多个表中进行查询,使用ROUND和Math,php,sql,database,html-table,Php,Sql,Database,Html Table,我正试图为游戏EVE在线制作一个项目数据库,供我和我的朋友们使用,我设置了一个SQL server,创建了一些表格等等,一切都很正常。然而,当我试图从两个不同的表中导入数据并在同一个html表元素中相互比较时,我遇到了一个问题。如果我只是从一个包含多个列的表中导入,它将非常有效,但是当我尝试选择多个源时,会遇到问题 我的桌子是 testmetrics.eve\u inv\u类型 和 testmetrics.items\u销售 理想情况下,我希望从表1中导入名称、类型、jita、价格、销售列,从表

我正试图为游戏EVE在线制作一个项目数据库,供我和我的朋友们使用,我设置了一个SQL server,创建了一些表格等等,一切都很正常。然而,当我试图从两个不同的表中导入数据并在同一个html表元素中相互比较时,我遇到了一个问题。如果我只是从一个包含多个列的表中导入,它将非常有效,但是当我尝试选择多个源时,会遇到问题

我的桌子是

testmetrics.eve\u inv\u类型 和 testmetrics.items\u销售

理想情况下,我希望从表1中导入名称、类型、jita、价格、销售列,从表2中导入价格、类型、站点和数量

我还在jita_price_sell和price上使用舍入运算符,得到各种商品的价格点的2位小数近似值。我也有它,以便在表2中只显示具有正确站点id的结果。但它不断地抛出一个错误

这是我到目前为止的代码

<?php
$con = mysql_connect("testmetrics.db.10198246.xxxx.com","xxxx","xxxx");
if (!$con) 
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("testmetrics", $con);
$result = mysql_query("
SELECT testmetrics.eve_inv_types.name, testmetrics.eve_inv_types.type_id, ROUND(testmetrics.eve_inv_types.jita_price_sell, 2) as jita_price_sell, ROUND(testmetrics.items_selling.price, 2) as price, testmetrics.items_selling.qty_avail, testmetrics.items_selling.sation_id, testmetrics.items_selling.type_id 
FROM testmetrics.eve_inv_types, testmetrics.items_selling
WHERE testmetrics.eve_inv_types.type_id = testmetrics.items_selling.type_id, testmetrics.items_selling.station_id = '61000746'");
echo "<table class='sortable'>
<tr>
<th>Item Name</th>
<th>Price (Jita)</th>
<th>Price (K-6K16)</th>
<th>Qty Avail (K-6K16)</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['testmetrics.eve_inv_types.name'] . "</td>";
echo "<td>" . $row['jita_price_sell'] . "</td>";
echo "<td>" . $row['price'] . "</td>";
echo "<td>" . $row['testmetrics.items_selling.qty_avail'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>

假设有一个键连接表,则可以连接表,例如:

table A:
    personId
    firstName
    lastName
    numOfChildren

table B:
    personId
    streetName
    cityName
    countryName
使用personID作为联接键从两个选项中进行选择:

SELECT firstName, lastName, numOfChildren, streetName, cityName, countryName
FROM tableA JOIN tableB USING (personId)
如果要限制结果,可以添加:

LIMIT 100
如果您想要排名前100位的家长,您可以按子女顺序订购:

最终查询如下所示:

SELECT firstName, lastName, numOfChildren, streetName, cityName, countryName
FROM tableA JOIN tableB USING (personId)
ORDER BY numOfChildren
LIMIT 100;
-或-

SELECT firstName, lastName, numOfChildren, streetName, cityName, countryName
FROM tableA JOIN tableB ON (tableA.personId=tableB.personId)
ORDER BY numOfChildren
LIMIT 100;

在此处阅读有关join的更多信息:

我遇到了与以前相同的错误。mysql_fetch_数组期望参数1是资源。谢谢你的努力!然后是拼写错误或查询没有结果。“61000746”是表eve\u inv\u types中的车站id吗?我刚检查了拼写,一切正常。61000746是仅用于销售项目的站点ID。基本上,出售的物品会给我游戏中所有站点的价值,成千上万!,我试着把它限制在那个站点数据上。当我只处理items_selling表中的数据时,我可以让它工作。我继续从一个新的数据转储重新上传SQL表定义,这就成功了。非常感谢你的帮助!我用我使用的代码更新了我的问题。我把它扔进MySQL工作台好几次,发现它卡在了eis.station\u id票据上。再次感谢你,伙计!在尝试编程之前,我会在phpMyAdmin中得到一个有效的查询。谢谢你的帮助:另一个人的评论让我工作,但是你的帮助让我排序。如果可以,我会投票的!
ORDER BY numOfChildren
SELECT firstName, lastName, numOfChildren, streetName, cityName, countryName
FROM tableA JOIN tableB USING (personId)
ORDER BY numOfChildren
LIMIT 100;
SELECT firstName, lastName, numOfChildren, streetName, cityName, countryName
FROM tableA JOIN tableB ON (tableA.personId=tableB.personId)
ORDER BY numOfChildren
LIMIT 100;