Php 这个代码有什么问题?选择计数和位置?
对于这种类型的代码,我有Php 这个代码有什么问题?选择计数和位置?,php,mysql,count,rows,Php,Mysql,Count,Rows,对于这种类型的代码,我有where questionId=$id语句,它会给我一个未定义索引id的错误,而mysqli_error()正好需要一个参数。我看到了很多时间,不知怎么我解决了一个问题,但现在我真的没有。我是新来的,还在学习,但我真的不知道。如果我删除这个WHERE questionId=$id它正在工作,它会显示它在那里有多少行,但我需要这个WHERE语句,它可以显示我在哪里,具体id有多少条记录。有两个问题和两个答案 首先,您需要定义$id。在页面的任何位置都没有定义它。如果您正在
where questionId=$id
语句,它会给我一个未定义索引id的错误,而mysqli_error()正好需要一个参数。我看到了很多时间,不知怎么我解决了一个问题,但现在我真的没有。我是新来的,还在学习,但我真的不知道。如果我删除这个WHERE questionId=$id
它正在工作,它会显示它在那里有多少行,但我需要这个WHERE语句,它可以显示我在哪里,具体id有多少条记录。有两个问题和两个答案
首先,您需要定义$id
。在页面的任何位置都没有定义它。如果您正在发布或获取变量,则应使用:
<?php
require_once "includes/db_connection.php";
$sqlCommand = "SELECT * FROM table1 WHERE questionId = $id";
$query = mysqli_query($db_connection, $sqlCommand) or die (mysqli_error());
$num_rows = mysqli_num_rows($query);
echo "Tabela sadrzi " . $num_rows . " redova.";
mysqli_free_result($query);
mysqli_close($db_connection);
?>
或
取决于它的get还是post
您还应该清理来自用户的任何输入,永远不要接受它。最好的方法之一就是过滤它
$id = $_GET['id'];
如果ID中不包含int,则返回整数或FALSE
第二个问题是您的
mysqli\u错误()。您需要传入资源链接,因此它应该是:
$id = filter_input(INPUT_POST, "id", FILTER_VALIDATE_INT);
如上所述,您可能有一个不同的PHP配置,其中request
数据是自动预定义的。通常,您需要自己定义$id
:
$query = mysqli_query($db_connection, $sqlCommand) or die (mysqli_error($db_connection));
问题的类型是什么?但是,您在哪里定义特定id$id
?您必须传递$id
参数进行查询。您需要定义$id。如果与POST类型表单一起使用,且命名元素称为“id”,则需要添加$id=$\u POST['id']
-如果是GET方法,则使用$id=$\u GET['id']代码>作为示例。在您的情况下,根据查询,它可能类似于$id=$\u POST['question']代码>祝你好运。直到我知道整个画面是什么样子,我才给出答案@Fred ii-您可以随时编辑答案。这看起来很明显是什么问题。没错,但我只有在绝对肯定的情况下才编辑。在这种情况下,OP没有指定$id
的来源。我在黑暗中是一个可怕的杀手谢谢你的提醒。但是,您的[id]
必须是['id']
;-)根据OP的定义,$id
可以被称为listaOdgovora
。但是我会坐下来等待这个结果。感谢您注意到这一点,但这不是一个要求,更像是一个良好实践的建议。通常最好用引号括起来,除非它是一个数组。如果不这样做,它可以被视为一个数组。@dainisaols如果不这样做,它会抛出一个通知使用未定义的常量,假定id
,因此实际上是必需的。
$query = mysqli_query($db_connection, $sqlCommand) or die (mysqli_error($db_connection));
<?php
require_once "includes/db_connection.php";
# It might be ID or QUESTIONID or something similar
$id = $_POST['id'];
if ( !$id ) $id = $_GET['id'];
/* You can also add ' around your request,
to prevent error when the id is actually not present at all */
$sqlCommand = "SELECT * FROM table1 WHERE questionId = '$id'";
$query = mysqli_query($db_connection, $sqlCommand) or die (mysqli_error());
$num_rows = mysqli_num_rows($query);
echo "Tabela sadrzi " . $num_rows . " redova.";
mysqli_free_result($query);
mysqli_close($db_connection);
?>