Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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时会出现未定义的变量错误?_Php_Mysql_Mysqli - Fatal编程技术网

为什么在页面的两个部分中使用PHP时会出现未定义的变量错误?

为什么在页面的两个部分中使用PHP时会出现未定义的变量错误?,php,mysql,mysqli,Php,Mysql,Mysqli,我试图在页面的两个不同部分使用PHP。但是当我尝试加载页面时,我收到错误:未定义变量$conn。为什么我会犯这个错误 <tbody> <?php $sql = "SELECT id, name, price FROM periperichicken"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // output data

我试图在页面的两个不同部分使用PHP。但是当我尝试加载页面时,我收到错误:
未定义变量$conn
。为什么我会犯这个错误

<tbody>
<?php
     $sql = "SELECT id, name, price FROM periperichicken";
     $result = mysqli_query($conn, $sql);
     if (mysqli_num_rows($result) > 0) {
         // output data of each row
         while($row = mysqli_fetch_assoc($result)) {
             echo "<tr>";
             echo "<td>" . $row["name"] . "</td>";
             echo "<td>£" . $row["price"] . "</td>";
             echo "<td><input type=\"text\" name=\"amount\" 
                 class=\"amount-type\"
                 placeholder=\"Amount\"/></td>";
             echo "<td><a href=\"\" class=\"add-cart\">Add to cart</a></td>";
             echo "</tr>";
         }
     }
     mysqli_close($conn);
?> 
</tbody>

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "pizza";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
?>

尝试使用数据库后,您正在定义并连接数据库。将连接部分移到查询上方。如果这是您将使用该页面的连接的唯一位置,那么这很好。但是,如果页面的其他页面或部分将使用该连接,您应该将其放置在一个公共文件中,该文件包含在使用该连接的每个页面的顶部

                        <tbody>
                            <?php
                            $servername = "localhost";
                            $username = "root";
                            $password = "";
                            $dbname = "pizza";

                            // Create connection
                            $conn = mysqli_connect($servername, $username, $password, $dbname);
                            // Check connection
                            if (!$conn) {
                                die("Connection failed: " . mysqli_connect_error());
                            }

                            $sql = "SELECT id, name, price FROM periperichicken";
                            $result = mysqli_query($conn, $sql);

                            if (mysqli_num_rows($result) > 0) {
                                // output data of each row
                                while($row = mysqli_fetch_assoc($result)) {
                                    echo "<tr>";
                                    echo "<td>" . $row["name"] . "</td>";
                                    echo "<td>£" . $row["price"] . "</td>";
                                    echo "<td><input type=\"text\" name=\"amount\" class=\"amount-type\" placeholder=\"Amount\"/></td>";
                                    echo "<td><a href=\"\" class=\"add-cart\">Add to cart</a></td>";
                                    echo "</tr>";
                                }
                            }

                            mysqli_close($conn);
                            ?> 
                        </tbody>

在脚本顶部使用$conn

$result = mysqli_query($conn, $sql);
然而,你把它定义得更深了

$conn = mysqli_connect($servername, $username, $password, $dbname);
在运行任何查询之前,您需要将该部分上移到第一个部分

<?PHP
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "pizza";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
?>

<tbody>
<?php
  $sql = "SELECT id, name, price FROM periperichicken";
  $result = mysqli_query($conn, $sql);

  if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
      echo "<tr>";
      echo "<td>" . $row["name"] . "</td>";
      echo "<td>£" . $row["price"] . "</td>";
      echo "<td><input type=\"text\" name=\"amount\" class=\"amount-type\" placeholder=\"Amount\"/></td>";
      echo "<td><a href=\"\" class=\"add-cart\">Add to cart</a></td>";
      echo "</tr>";
    }
  }

  mysqli_close($conn);
?> 
</tbody>


在php代码的顶部调用$conn之前,我非常确定您需要定义$conn。

php是按顺序加载和执行的。。。在使用$conn之后,您正在定义它。试着在之前做。例如:将PHP的第二个blob移到第一个blob之上


有关PHP执行顺序的更多信息,请查看。

花点时间阅读帮助中心中的。堆栈溢出上的格式设置与其他站点不同。你的帖子越好看,用户就越容易帮助你。