2017-10-16 8 views
-5

私はPDOの学習に取り組んでいます。基本的に私がしようとしているのは、その年の任意の日に作業していない名前を表示することです。私のPDOクエリーを別のページに表示するのに問題がある

私は変数に設定された日付に基づいて私に名前を与える準備されたステートメントを作成しました。それは期待どおりに機能しています。

私が抱えている問題は、それを別のページに表示していることです。 PDOステートメントのページはvacationnames.phpと呼ばれます。

日付によっては、calendar1.phpやcalendar2.phpという名前の4つのページの1つにこれらの名前を表示する必要があります。ここで

は、私が持っているコードです: 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

基本的には、あなたの推測どおり、$ sthが定義されているとは思えないので、あなたのコードは "未定義変数$ sth"というエラーを出すべきですin calendar.php –

答えて

-1

これにはSESSIONSを使用できます。 SESSION変数にあなたのポストの値を保存し、ページがトップ

ここ

でのsession_start()はマニュアルへのリンクになって含まれている場合は、あなたのサイトのどこにその変数に呼び出すことができます - http://php.net/manual/en/reserved.variables.session.php

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

私は、これはあなたが*

関連する問題