2017-10-16 30 views
-5

我一直在学习PDO。基本上我想要做的是显示一年中任何一天下班的名字。无法让我的PDO查询显示在另一页上

我创建了一个准备好的语句,它根据变量中设置的日期给出了名称。它按预期工作。

我遇到的问题是在单独的页面上显示。可以说我的网页PDO声明被称为vacationnames.php

根据不同的日期,我需要显示这4个不同的页面中的名称calendar1.php或calendar2.php等等。

这里是我的代码: vacationnames.php

$dsn = "mysql:host=$host;dbname=$db;charset=$charset"; 
$opt = [ 
PDO::ATTR_ERRMODE   => PDO::ERRMODE_EXCEPTION, 
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 
PDO::ATTR_EMULATE_PREPARES => false, 
]; 
$db = new PDO($dsn, $user, $pass, $opt); 

$sth = $db->prepare(" 
SELECT (employee.name)Name 
, vacation_picks._date1 as Date 
FROM employee 
LEFT OUTER JOIN 
vacation_picks on 
employee.employee_id = vacation_picks.employee_id 
WHERE vacation_picks._date1 = :day 
"); 

这是对calendar.php网页之一

$myVariable = ('2017-1-1'); 
// This executes the SQL query, binding the parameter as we go. 
$sth->execute(array(
':day' => $myVariable 
)); 

// echo $myVariable; 
foreach($sth as $row) { 
echo $row['Name']; 
} 

即使把 '第一天' PHP的日历.php with vacationnames.php required_once不给我结果。如果可能的话,我宁愿在calendar.php中使用更少的代码。

感谢您的期待。

+0

* *“我有被显示的是一个单独的页面上的问题。” - 您可以使用这个会话。但是,这听起来更像是一个超出范围的问题。 –

+0

[有时,您可以使用预准备语句来执行准备好的查询的多次执行。如果可以执行另一个PHP实例中准备的语句,该功能将会更加有用。但是,唉 - 它不是](https://phpdelusions.net/pdo#multiexec) –

+1

基本上,你的代码应该发出一个“Undefined variable $ sth”的错误,因为,正如你猜测的那样,无处可见$ sth可以被定义在calendar.php –

回答

-1

你可以为此使用SESSIONS。存储您提交值到会话变量,你可以在该变量的任何地方在您的网站,然后调用如果页面包含在session_start()顶部

下面是手动的链接 - http://php.net/manual/en/reserved.variables.session.php

例如

$_SESSION['name'] = $_POST['firstname']; 

我希望这可以让你去