2016-01-05 28 views
0

我已经使用template.php文件创建我的页面布局,然后通过存储在单独文件中的$ content变量插入内容。该文件的这个例子:使用模板文件时不通过PHP显示SQL数据

<?php 

$content = 
' 
    <table id="job_table"> 
     <tr> 
      <th id="jobtitle">Catering Assistant</th> 
      <th id="r_code">Ref Code: 14407773</th> 
     </tr> 

     <tr> 
      <td id="location">Northampton</td> 
      <td id="salery">£2,000 Monthly</td>  
     </tr> 

     <tr> 
      <td id="description">Description</td> 
      <td> 
      Assist in catering for workers in canteen area. 
      </td> 
     </tr> 

     <tr> 
      <td><a href="apply.php" class="applyButton">Apply Now!</a></td> 
      <td></td> 
     </tr> 
    </table> 
'; 

include 'template.php'; 

?> 
我的模板内

然后,我只是使用echo显示的内容:

<div id="content_area"> 
    <?php echo $content; ?> 
</div> 

当我使用下面的代码我的template.php内部文件一切正常像预期一样:

<div id="content_area"> 
       <?php echo $content; ?> 

       <?php 

       $server = '192.168.56.2'; 
       $username = 'student'; 
       $password = 'student'; 
       $schema = 'TravelCompanyDatabase'; 

       $pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password); 
       $results = $pdo->query('SELECT * FROM user'); 

       foreach ($results as $row) 
       { 
        echo '<p>' . $row['firstname'] . ' ' . $row['lastname'] . '</p>'; 
       } 

       ?> 
      </div> 

Working Webpage

但是当我使用我的内容的PHP文件中相同的代码我得到一个错误这样的:

<?php 

$title = "Jobs"; 
$content = 
' 
    <?php 

    $server = '192.168.56.2'; 
    $username = 'student'; 
    $password = 'student'; 
    $schema = 'TravelCompanyDatabase'; 

    $pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password); 
    $results = $pdo->query('SELECT * FROM user'); 

    foreach ($results as $row) 
    { 
     echo '<p>' . $row['firstname'] . ' ' . $row['lastname'] . '</p>'; 
    } 

    ?> 
'; 

include 'template.php'; 

?> 

Webpage Displaying Error

+0

您是否尝试过用双引号,而不是单打包住你的$内容?我会说你得到这个错误的原因是因为当它到达192.168之前的第一个单引号时,它实际上跳出了引起错误的$ content部分。 – Haymaker

+0

你正试图回应存储在单独文件中的变量$ content?你是否在template.php文件中包含了包含$ content变量的文件? – user3479671

+0

@WesleyMurch我相信php的开启和关闭都是正确的? – aarontbarratt

回答

0

它可能会更好,如果你做这样的事情:

<?php 
$title = "Jobs"; 
$content = ''; // Create an empty string 

$server = '192.168.56.2'; 
$username = 'student'; 
$password = 'student'; 
$schema = 'TravelCompanyDatabase'; 

$pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password); 
$results = $pdo->query('SELECT * FROM user'); 

foreach ($results as $row) 
{ // Add every result to $content using .= 
    $content .= '<p>' . $row['firstname'] . ' ' . $row['lastname'] . '</p>'; 
} 

echo $content; 
+0

谢谢!你很可能绝对是对的。你是上帝发送:) – aarontbarratt

-1

尝试使用双引号为$内容变量。

+0

这给出了一个不同的错误: 解析错误:语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),预计标识符(T_STRING)或变量(T_VARIABLE)或编号(T_NUM_STRING)在第18行中的/srv/http/jobs.php上 – aarontbarratt

+0

它引用此行:echo'

'。 $ row ['firstname']。 ''。 $ row ['lastname']。 '

'; – aarontbarratt

0

你双开<?php标签。

试试这个:

<?php 
$title = "Jobs"; 
$server = '192.168.56.2'; 
$username = 'student'; 
$password = 'student'; 
$schema = 'TravelCompanyDatabase'; 

$pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password); 
$results = $pdo->query('SELECT * FROM user'); 

$content = ''; 
foreach ($results as $row) { 
    $content.= '<p>' . $row['firstname'] . ' ' . $row['lastname'] . '</p>'; 
} 

include 'template.php'; 

?> 
相关问题