2016-12-11 155 views
1

假设我有一个名为mytable的与列的表:函数返回的查询结果

------------------------ 
| id | field1 | field2 | 
------------------------ 

,并假设我有一个HTML文件:

<body> 
<?php 
    include ('connect-db.php'); 
    include ('function.php'); 
?> 

<ul> 
    <?php 
     myfunction(); 

     while($row = $result->fetch_assoc()){ 
      echo "<li>".$row['field1']." and ". $row[field2]."</li>"; 
     } 
    ?> 
</ul> 
</body> 

这是我的connect-db.php文件:

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

$conn=new mysqli($servername, $username, $password, $dbname); 
?> 

这是我的function.php文件:

<?php 
    function myfunction(){ 
     $sql = "SELECT * FROM mytable"; 
     $result = $conn->query($sql); 
    } 
?> 

如何回显字段1和字段2?因为我有和错误

+0

提供你的错误,请 – demo

回答

0

函数内部使用的任何变量默认限制为本地 函数作用域。

您可以在这里阅读更多关于它的信息:Variable scope。如何解决它?通过$conn作为参数myfunction,并返回$result

function myfunction(mysqli $conn) { 
    $sql = "SELECT * FROM mytable"; 
    return $conn->query($sql); 
} 

,那么你可以在主界面

<body> 
    <?php 
     include ('connect-db.php'); 
     include ('function.php'); 
    ?> 

    <ul> 
     <?php 
     $result= myfunction(); 

      while($row = $result->fetch_assoc()){ 
       echo "<li>".$row['field1']." and ". $row[field2]."</li>"; 
      } 
     ?> 
    </ul> 
    </body> 

$result = myfunction($conn); 
0

称它为确保以下变化.....

在你的函数文件..

 <?php 
     include ('connect-db.php'); 
     function myfunction(){ 
      $sql = "SELECT * FROM mytable"; 
      $result = $conn->query($sql); 
      return $result; 
     } 
    ?> 
+0

在主页你必须定义变量,必须捕捉函数返回的结果。 –

+0

在函数页面中,您必须包含数据库连接文件以查询数据库......这些常见错误.... –