Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mysqli_fetch_array()错误_Php_Html_Mysql_Mysqli - Fatal编程技术网

PHP mysqli_fetch_array()错误

PHP mysqli_fetch_array()错误,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,当我试图在我的一个php表单中执行sql语句时,我遇到了一个mysqli_fetch_array()错误。 它所做的是在数据库中搜索用户的电子邮件并返回结果。我可以通过dbforge执行SQL语句,它可以工作,但是在通过web应用程序启动时不会运行 代码: 此处的HTML元素: <form action="" method="post"> <div class="form-group">

当我试图在我的一个php表单中执行sql语句时,我遇到了一个mysqli_fetch_array()错误。 它所做的是在数据库中搜索用户的电子邮件并返回结果。我可以通过dbforge执行SQL语句,它可以工作,但是在通过web应用程序启动时不会运行

代码:


此处的HTML元素:

    <form action="" method="post">
                    <div class="form-group">
                        <label for="Email Address">Email Address</label>
                        <input type="email" class="form-control" id="email" name="email" style="width:60%; display:inline;" required>
                    </div>
                    <button type="submit" class="btn btn-default">Submit</button>
                </form>




                <div class="table-responsive" style="width:100%; ">
                   <table class="table table-condensed table-bordered" >
                       <tr class="bg-cotu">
                           <th style="width:45%;" class="text-center">Member name</th>
                           <th style="width:20%;" class="text-center">Point Total</th>
                       </tr>


<?php
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['f_name']." ".$row['l_name'] . "</td>";
echo "<td>" . $row['point_total'] . "</td>";
echo "</tr>";
}
?>
 </table>
                </div>

电子邮件地址
提交
成员名称
总分

您尚未引用您的
$email
值。
real\u escape
函数可以为您这样做

WHERE checkin.user = '$email'");
                     ^------^---- you still need these
如果您费心在查询中添加任何类型的错误处理,您会被告知:

$result = mysqli_query($mysqli, $query) or die(mysqli_error());
                                       ^^^^^^^^^^^^^^^^^^^^^^^
永远不要假设查询总是成功的。即使您的SQL在语法上是完美的,也有无数其他原因导致它失败。总是假设失败,检查失败,把成功当作惊喜

这就像“我不需要系安全带。我不开车到树上,所以我会没事的”。我相信在你的尸体被从醉汉司机的汽车引擎盖上刮下来后,这对你的亲属来说是一个安慰的想法。

试试这个:

$result = mysqli_query($mysqli, "SELECT 
  checkin.user, 
  SUM(checkin.points) AS point_total, 
  satellite_members.f_name, 
  satellite_members.l_name, 
  satellite_members.email 

  FROM checkin 

  INNER JOIN satellite_members 

  ON satellite_members.email = checkin.user
  WHERE checkin.user = '$email'") or die(mysqli_error());
这是必须的

 while($row = mysqli_fetch_array($result))

您混合使用mysql_*和mysqli_*API。仅使用mysqli。^--mysql\u real\u escape\u字符串($\u POST['email'])应该是
mysqli\u real\u escape\u字符串($mysqli,$\u POST['email'])
和quoting
$email
-使用它会指示这些错误。当使用
mysqli
时,你应该使用参数化查询并将用户数据添加到查询中。不要使用字符串插值来完成此操作,因为这样会创建严重的错误。不要手动逃脱和注入绳子。“我相信在你的尸体被从醉汉司机的汽车引擎盖上刮下来后,这对你的亲属来说是一个安慰。”-这里的尸体数量是真实的;不是虚拟的。切换到占位符值会使引用变得不相关。
 while($row = mysqli_fetch_array($result))