我正在制作排行榜。排行榜从我的SQL数据库中获取数据。它使用MySQL的旧方法,因为我还不熟悉MySQLi。
我不想每次都添加一行,所以我使用php方法重复它。但是我遇到了一个问题。它没有返回我放在回声中的东西。
这是我的完整代码: https://gist.github.com/matthijs110/accb1b0b69570c4d3f50
对我来说很好看,我找不到任何错误。当前代码的结果如下所示:
关于警告:我不知道为什么以及它是如何实现的,它说问题就在这一行:
if (mysql_num_rows($result)) {
我已经使用过,如果在其他页面上多次检查没有任何问题。
有什么问题?
答案 0 :(得分:1)
您正在尝试使用 mysql_ library 进行查询,但尚未与其建立连接。您已使用 mysqli_ library 打开了连接。
选择mysqli_
或mysql_
(或PDO)并坚持下去。不要在脚本中间切换数据库库。 (不要选择mysql_,不推荐使用。)
在您的连接页面中,您使用的是mysqli_
库
if($mysqli->connect_errno) {
但是在您完成代码时,您正尝试使用mysql
库
if (mysql_num_rows($result)) {
Mysqli PHP:
<?php
// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT Username,Wins FROM Leaderboard_Tag ORDER BY Wins DESC");
$rank = 1;
if (mysqli_num_rows($result) >= 1) {
while ($row = mysqli_fetch_assoc($result)) {
$Username=$row['Username'];
$Wins=$row['Wins'];
echo "<td>$rank</td>
<td>Ava</td>
<td>$Username</td>
<td>$Wins</td>";
$rank++;
}
}
mysqli_close($con);
?>
答案 1 :(得分:0)
你唯一的问题是它可能忘了包含你的连接文件。
include("your connection file here");
编辑:
你在mysql和mysqli之间混合。
更改此
if (mysql_num_rows($result)) {
到
if ($result->num_rows > 0)) {
编辑:
你需要将mysql fetch也更改为mysqli。
更改此
while ($row = mysql_fetch_assoc($result)) {
到
$result->execute(); // Execute the prepared query.
$result->store_result();
$result->bind_result($Username, $Wins);
while($row = $result->fetch()){
echo $Username;
echo $Wins;
}
答案 2 :(得分:0)
*重要
从php 5.5.0 mysql函数不推荐使用(软)
自PHP 5.5.0起,此扩展程序已弃用,并将在中删除 未来。相反,应该使用MySQLi或PDO_MySQL扩展。 另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息 信息。此功能的替代方案包括:mysqli_connect() PDO :: __构建体()
因此最好不要一般使用Mysql,尝试学习PDO。