从另一个包含页面的包含页面调用变量

时间:2019-05-19 11:19:22

标签: php mysql

我有一个config / settings php文件(config.php),该文件包含在顶部的index.php页面中。 (都在同一目录中)此文件包含sql数据库信息。我的导航通过$ _GET方法完成,并包括另一个php文件,具体取决于选择的页面。 (位于索引文件和配置文件所在的子目录中),我试图使用存储在配置文件中的连接信息来调用sql函数。但是,这不起作用,我不明白为什么。 Include本质上应该将所有代码放置在要包含的文件中,从哪个位置调用它?因此,在index.php中,第一个include应该将配置信息放在顶部,然后再向下放置它应该将来自另一个include的页面特定代码放置。为什么我的sql代码无法正常工作,除非我明确地将页面文件本身中的另一个include包含回配置文件中?完成此操作后,它会生效,但是随后我会收到重复代码的警告,例如启动会话。

index.php

<?php
    // Attach Settings File
    include 'admin_settings.php';

    if(isset($_GET['page']))
          {
            $page = $_GET['page'];
            // Appointment Manager
            if($page == 'appointmentManager')
            {
                include 'includes/page_appointmentManager.php';
            }
            // Webmail
            if($page == 'webmail')
            {
                include 'includes/page_webmail.php';
            }
          }
?>

admin_settings.php

<?php
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // Start The Session
  session_start();
  ob_start();
    // Website Time Zone
  date_default_timezone_set('Australia/Brisbane');
  $date = date('l d-m-Y');
  $time = date('g:i A');
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // DATABASE CONNECTION
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Host
    $host = 'IP';
    // User Name
    $user = 'USER';
    // Password
    $password = 'PASSWORD';
    // DB Name
    $db_name = 'DATABASE';  
    ////////////////////////////////////////////////////////
    // Connection
    $con = mysqli_connect($host,$user,$password,$db_name);
    // Check Connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>

page_appointmentManager.php

<h2>APPOINTMENT MANAGER</h2>

<table style="width:100%">
  <tr>
    <th>DATE</th>
    <th>TIME</th> 
    <th>NAME</th>
    <th>EMAIL</th>
    <th>COMMENT</th>
  </tr>
<?php
  $sql = "SELECT * FROM tbl_appointments ORDER BY slimDate DESC, time DESC";
  $result = mysqli_query($con,$sql);

  while($row = mysqli_fetch_assoc($result))
  {
?>
  <tr>
    <td><?=$row['date']?></td>
    <td><?=$row['time']?></td> 
    <td><?=$row['name']?></td>
    <td><?=$row['email']?></td>
    <td><?=$row['comment']?></td>
  </tr>
  <tr>
    <td colspan='2'>IP: <?=$row['client_ip']?></td>
    <td colspan='3'>Browser</td>
  </tr>
<?php
  }  
  // Close Connection
  mysqli_close($con);
?>  
</table>

错误:

[19-May-2019 21:19:53 Australia/Brisbane] PHP Warning:  mysqli_query(): Couldn't fetch mysqli in /home/cp868070/public_html/files/admin/includes/page_appointmentManager.php on line 13
[19-May-2019 21:19:53 Australia/Brisbane] PHP Warning:  mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in /home/cp868070/public_html/files/admin/includes/page_appointmentManager.php on line 15
[19-May-2019 21:19:53 Australia/Brisbane] PHP Warning:  mysqli_close(): Couldn't fetch mysqli in /home/cp868070/public_html/files/admin/includes/page_appointmentManager.php on line 32

0 个答案:

没有答案