未定义变量:第101行的/dashboard/index.php中的con
我试图在while循环中显示用户列表的状态(活动或暂停) 0=活动 1=暂停未定义变量:第101行的/dashboard/index.php中的con,php,mysql,Php,Mysql,我试图在while循环中显示用户列表的状态(活动或暂停) 0=活动 1=暂停 <?php $result = mysqli_query($con,"SELECT status FROM `e_customer`"); while($row = mysqli_fetch_array($result)) { if ($row['status'] == "1") { echo "Suspended"; } else {
<?php
$result = mysqli_query($con,"SELECT status FROM `e_customer`");
while($row = mysqli_fetch_array($result)) {
if ($row['status'] == "1") {
echo "Suspended";
} else {
echo "Active";
}
}
?>
上述情况给了我:
注意:第101行的未定义变量:con in/dashboard/index.php
警告:mysqli_query()要求参数1为mysqli,在第101行的/dashboard/index.php中给出空值
警告:mysqli_fetch_assoc()希望参数1是mysqli_result,第102行的/dashboard/index.php中给出的空值请务必回答注释中的问题。很多聪明人都想帮你 我不使用mysqli。如果我做了,我可能会尝试这样的东西
<?php
if ($stmt = mysqli_prepare($con, "SELECT status FROM e_customer WHERE account = ?")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $username);
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $status);
mysqli_stmt_fetch($stmt);
//is 0 really active and 1 suspended because than seems pretty backwards?
if (!$status) { //per your comment then `!$status`. cringing...
echo 'Active';
} else {
echo 'Suspended';
}
mysqli_stmt_close($stmt);
}
首先,我将直接在数据库中尝试您的查询,以确保其正常工作,然后尝试以下操作:
<?php
$result = mysqli_query($con,"SELECT status FROM `e_customer` WHERE account='$username'");
$row = mysqli_fetch_assoc($result);
echo ($row['status'] == "1") ? "Suspended" : "Active";
?>
如果仍然没有,则尝试对$con变量和$row变量执行var_转储。查看您是否正在连接和/或返回结果
…还有$username变量。现在我们有了真正的PHP错误,我们可以处理它了
确保在查询之前初始化$con。您可能忘记了包含或其他内容。出于调试目的,将其添加到查询上方。让我知道这是否解决了你的问题
注意:mysqli_connect()需要4个参数
主机:127.0.0.1或本地主机或远程服务器的IP/DNS
用户:连接到数据库的用户名
密码:连接数据库的密码
DB Name:数据库的名称
因此,完整的代码如下所示:
<?php
error_reporting( E_ALL );
ini_set('display_errors', 1);
$con = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
$result = mysqli_query($con,"SELECT status FROM `e_customer`") or die(mysqli_error($con));
while($row = mysqli_fetch_array($result)) {
if ($row['status'] == "1") {
echo $row['account']." is Suspended</br>";
} else {
echo $row['account']." is Active</br>";
}
}
?>
表示要了解的语句。即使是这样也不安全!检查错误,我很肯定你会发现问题的。我有自己的想法。错误检查?您查看日志了吗?在查询中使用mysqli\u error($con)
;告诉我们你看到了什么。可能是未定义的索引?“@PatrickSimard查询的列名称中有一个拼写错误,这就是我的钱所在,但OP似乎想保持沉默,或者留下了问题,或者不知道如何处理我写的内容。让我试试你的代码,是的,在这个例子中,0=active和1=suspended这是我非常确定的,甚至我可以在mysql控制台中看到它。当我使用给定的示例代码时,它不会在PHP站点中提供任何输出。空白页面可能意味着您面临PHP错误。检查日志或激活调试。由于OP拒绝回答任何问题,因此没有人会知道出了什么问题。帮助一个不帮助我们的人是很难的。你甚至可以称之为“浪费时间”。我们试过了……我们真的试过了。再见。我也试过你的方法,但现在它被固定为仅活动,即使mysql给出1(挂起)值。嗯,你说查询直接在mysql中工作,所以没有留下很多选项。我怀疑问题出在$con连接上。如果您只是尝试打印整个$row变量,而不是基于三元(如我所示)进行回音,会怎么样。这可能会有一些启发。对不起,这个想法有点漫不经心。首先,var_转储$result。如果它是假的,那就是你的连接,如果它是一个结果集,那么按照我前面说的做。当我尝试检查连接时,它似乎在工作,我尝试过它,它显示我为0和1,不管有什么。但问题是我无法将1和0转换为活动和暂停关键字。$r或$row?有时它就像打字一样简单?没有空白页。它只是没有结果,既不是活动的(0),也不是挂起的(1)。无论你何时回答任何问题,请保持耐心,我会检查建议,同时回答两个问题。至少你们应该知道有这么多的建议和答案蜂拥而至,每个人都在问不同的问题,比如调试、输出等等。如何一次获得所有信息并回复所有信息?在上面的建议中,有一些东西经过了测试。首先,我们要确保php调试被激活,并显示警告。然后我们确保用户名真的等于某个值。然后我们使用mysqli_error()以防出现查询错误。以上所有内容都解决了所提出的问题。试试看,告诉我们发生了什么。@PatrickSimard不是我的反对票;很抱歉看到你有一个。我编辑了你的答案,顺便说一句。Thx@Fred ii-!我忘了那块钱了。至于否决票,idk。。。有点可怜吧?哈哈,至少不是你hehe@PatrickSimard(我不会投你一票的,你的回答在我看来很好,不管怎么说,这篇文章是怎么写的。这就是所谓的经典“兔子洞”问题,我很抱歉看到你(和其他人)在那里被追赶。
<?php
error_reporting( E_ALL );
ini_set('display_errors', 1);
$con = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
$result = mysqli_query($con,"SELECT status FROM `e_customer`") or die(mysqli_error($con));
while($row = mysqli_fetch_array($result)) {
if ($row['status'] == "1") {
echo $row['account']." is Suspended</br>";
} else {
echo $row['account']." is Active</br>";
}
}
?>