您的文本它为所有用户返回 0。我主持了一个 MMORPG 粉丝网站,我试图编写一个查询,获取每周从游戏 API 中收集的名声 - 或 + 并返回差值,以便他们知道他们每周获得或失去的名声数量。我买了这个 fam 网站,而且我的 php 水平是初学者,所以我从未尝试过加入两张桌子。
表格在表格内设置了 API 第 1 周和第 2 周,我有一行称为“名望”
<?php
/////////////////////////////////////////////////////////////
/////////This doesnt work i suck/////////////////////////////
/////////////////////////////////////////////////////////////
include('includes/dbh.inc.php');
include('includes/functions.inc.php');
//Tried player join cant get where to work
$sql = "SELECT * FROM api_scores_week1 INNER JOIN api_scores_week2 ON api_scores_week1.player = api_scores_week2.player";
//first query
//$sql = "SELECT * FROM api_scores_week1 WHERE active > 0 ORDER BY fame ASC";//
$result = mysqli_query($connectDB, $sql);
// Loop through result set and echo each event
while ($row = mysqli_fetch_array($result)) {
$player = $row['player'];
$fame = $row['fame'];
echo $player . "-" . max(intval(api_scores_week1.$fame - api_scores_week2.$fame),$max) . " <br/>";
}
mysqli_close($connectDB);
?>
您需要使用别名概念从两个表中获取名气值,然后进一步使用这些值来获得最终的名气。
更改您的代码,如下所示:
<?php
include('includes/dbh.inc.php');
include('includes/functions.inc.php');
$sql = "SELECT
api_scores_week1.player AS player,
api_scores_week1.fame AS week1Fame,
api_scores_week2.fame AS week2Fame
FROM
api_scores_week1
INNER JOIN api_scores_week2 ON api_scores_week1.player = api_scores_week2.player";
$result = mysqli_query($connectDB, $sql);
while ($row = mysqli_fetch_array($result)) {
$player = $row['player'];
$week1Fame = $row['week1Fame'];
$week2Fame = $row['week2Fame'];
echo $player . "-" . max(intval($week1Fame - $week2Fame),$max) . " <br/>";
}
mysqli_close($connectDB);