我的代码在本地主机上运行良好,但是当加载到删除服务器上时,它的行为有所不同 - 本地主机上的 id 显示应有的样子(见图片) - id 是有序的。
然而,在远程服务器上它不是,但代码是相同的!!
我试过在远程服务器上的 myphpadmin 中只运行 sql 查询,没问题。
$con = mysqli_connect("localhost", "******", "******", "ps10");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: ".mysqli_connect_error();
}
if ($_POST['selClass'] == 'All records' OR $_SESSION['selClass'] == 'All records') {
$query_rs4 = "SELECT *
FROM marker
INNER JOIN users ON marker.class = users.class";
} else {
if (empty($_POST['selClass']) && empty($_SESSION['selClass'])) {
$query_rs4 = "SELECT *
FROM marker
INNER JOIN users ON marker.class = users.class";
} else {
$query_rs4 = "SELECT *
FROM marker
INNER JOIN users ON marker.class = users.class
WHERE users.username='{$_SESSION['selClass']}'";
}
}
$rs4 = mysqli_query($con, $query_rs4) or die(mysqli_error($con));
$row = mysqli_num_rows($rs4);
echo "There are ".$row." students in this class";
最佳答案
除了您没有向我们展示创建表的代码这一事实之外,它在两台机器上的功能不同,请记住这句话
SELECT * FROM tableA JOIN tableb
意味着由于两个表中可能存在具有相同名称的字段,因此您无法确定返回的是哪个字段。
例如,如果两个表都有一个 id 字段,使用该查询意味着您不知道您将获得 tableA.id 还是 tableB.id...
如果你说:
select tableA.* from tableA join tableB
您将确定 id 字段将来自 tableA...
另外,如果你想要按 id 排序的结果,你应该明确地添加一个 ORDER BY tableA.id 子句,否则服务器可以决定按照它喜欢的顺序给你记录,甚至每次都不同查询...
关于php - 这个 php/mysql 在本地主机和远程服务器上的行为不同有什么原因吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56380455/