[英]a PHP include() function with a strange outcome
我是最近才開始學習PHP的,遇到了一個令人沮喪的問題,即代碼看起來不錯,但它根本無法工作,即使是教我的人也不知道是什么原因造成的。 下面,我將我的代碼粘貼到您身上。
<?php
header("content-type: text/html; charset = UTF-8");
$con = new mysqli();
$con -> connect("localhost", "root" ,"");
$con -> select_db("test_db");
$con -> query("set names UTF8");
$query = $con -> query("SELECT * FROM TITLES LIMIT 0,2");
$num = $query -> num_rows;
for ($i=1 ; $i <= $num; $i++)
{
$result = $query -> fetch_array();
echo "<table style ='float: left'>";
echo "<tr><th>".$result["TITLE"]."</th><tr>";
echo "<tr><td>";
include("$i.php");
echo "</td></tr>";
echo "</table>";
}
?>
結果變成這樣:
順便說一句,我在MAC中使用XAMPP 7.0.1。
<?php
header("content-tupe: text/html; charset = UTF-8");
$con = new mysqli();
$con -> connect("localhost", "root" ,"");
$con -> select_db("test_db");
$con -> query("set names UTF8");
$query = $con -> query("SELECT * FROM PHP_MANUAL LIMIT 0,6");
?>
<ul>
<?php
while ($result = $query -> fetch_array())
{
echo "<li>".$result["CONTENT"]."</li>";
}
?>
</ul>
<?php
header("content-type: text/html; charset = UTF-8");
$con = new mysqli();
$con -> connect("localhost", "root" ,"");
$con -> select_db("test_db");
$con -> query("set names UTF8");
$query = $con -> query("SELECT * FROM TITLES LIMIT 0,2");
$i = 0;
while($result = $query -> fetch_assoc())
{
$i++;
echo "<table style ='float: left'>";
echo "<tr><th>".$result["TITLE"]."</th><tr>";
echo "<tr><td>";
include("$i.php");
echo "</td></tr>";
echo "</table>";
}
?>
使用while
循環瀏覽行。
當您將文件包含在另一個PHP文件中時,包含的文件中的所有變量將處於活動狀態,並且可以進行操作。
在您的情況下,您正在使用$ query和$ result變量來覆蓋您啟動的變量。 因此,TITLES的$ query已更改,因此即使您要使用unset()也不起作用。
示例:基本包含示例
vars.php
<?php
$color = 'green';
$fruit = 'apple';
?>
test.php
$color = 'yellow';
$fruit = 'banana';
echo "A $color $fruit"; // A yellow banana
include 'vars.php';
echo "A $color $fruit"; // A green apple
?>
來源: http : //php.net/manual/en/function.include.php
另外,您可能希望將$ con變量放入一個單獨的PHP文件中並包含一次。 閱讀有關PHP的更多信息,包括:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.