为什么在页面的两个部分中使用PHP时会出现未定义的变量错误?
我试图在页面的两个不同部分使用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
未定义变量$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执行顺序的更多信息,请查看。花点时间阅读帮助中心中的。堆栈溢出上的格式设置与其他站点不同。你的帖子越好看,用户就越容易帮助你。