我想知道我做错了什么。。我似乎不明白为什么它不返回我的行,只是当我调用"$grow["bName"]"时,它没有呼应语句并将其留空。我尝试了我的查询,结果很好,它返回两列,username和bName。这是我的php代码:
<?php
require ("cfd.php");
require ("header.php");
$username = $_SESSION["username"];
echo $username;
//run the query
$gsql = "SELECT babysitter.bName, login.username FROM login INNER JOIN babysitter ON login.b_ID=babysitter.b_ID WHERE login.username = '".$username."';";
$gres = mysqli_query($db, $gsql);
$grow = mysqli_fetch_assoc($gres);
echo "<h2>Hello ".$grow["bName"].", Your admin status is ".$_SESSION['admin']."<br>";
echo $gres->num_rows;
?>
<?php
require("footer.php");
?>
请尝试$grow[0]["bName"]
,否则您可以使用此
while($row = mysqli_fetch_assoc($gres))
{
$row['bNAme'];
}
首先检查num行。并移除;在查询结束时
试试这个
if (mysqli_num_rows($gres) > 0) {
while ($row = mysqli_fetch_assoc($gres)) {
echo $row["bName"];
}
}
您的查询应该是
$gsql = "SELECT babysitter.bName, login.username FROM login INNER JOIN babysitter ON login.b_ID=babysitter.b_ID WHERE login.username = '".$username."'";
使用此
if (mysqli_num_rows($gres) > 0) {
while ($row = mysqli_fetch_assoc($gres)) {
echo $row["bName"];
}
}
(代表OP发布)。
我问了我的老师,她说会话可能超时了,所以当我调用它时,给了我一个空字符串($username = $_SESSION["username"]
)。然后它将不向查询中插入任何内容,并会给我一个错误。
我将实现一些代码来检查$_SESSION["username"]
是否为空,如果为空,则重定向回登录页面。我会把这个写在所有的页面上。