PHP エラーについて
ファイルをテンプレ&mysqlを使って自動生成するスクリプトを書いているのですが
以下のエラーが出ます。
Fatal error: Call to a member function append() on a non-object in /home/stylenavi/www/httpdocs/test/file_make2.php on line 52
while ($rb2 = mysql_fetch_array($rb)) で値はDBから取れているのですが、
それが次の行でエラーになる理由がわかりません。
どなたかお力ぞえ頂けないでしょうか。
よろしくお願いいたします。
----------------------------------------------------------------------
<?PHP
require_once("Smarty.class.php");
$s=mysql_connect("hogehoge.db.sakura.ne.jp","hogehoge","hoge") or die("失敗しました");
mysql_select_db("hogehoge",$s);
$sql = "SET NAMES utf8";
$result = mysql_query($sql);
$template = "../templates/itiran_page_test.tpl";
$sakuin = "sakuin1";
//フッターリンク(1)のキー定義
$h_link = "sakuin1";
//下層ページファイル名一覧の取得
$ra=mysql_query("select * from sougou_db where key5 LIKE 'sakuin1'");
while ($ra2 = mysql_fetch_array($ra)) {
$ra3 = array($ra2[filename]);
foreach( $ra3 as $value ){
//テンプレートの読み込み
$contents = file_get_contents( $template);
// 作成するファイル名の指定
$file_name = $dir.$value;
//ページ要素の取得とテンプレートへの挿入
$rb=mysql_query("select * from sougou_db where (filename = '$value')");
while ($rb2 = mysql_fetch_array($rb)) {
//echo $rb2[title]; //⇒ちゃんと表示できます
$objSmarty->append('data2',$rb2);
}
//索引一覧の取得とテンプレートへの挿入
$rc=mysql_query("select * from sougou_db where (key5 = '$sakuin') ");
while ($rc2 = mysql_fetch_array($rc)) {
//$objSmarty->append('data3',$rc2);
//echo $rc2[title];
}
//フッターリンクの取得とテンプレートへの挿入
$rd=mysql_query("select * from sougou_db where (key5 = '$h_link') ");
while ($rd2 = mysql_fetch_array($rd)) {
//$objSmarty->append('data4',$rd2);
//echo $rd2[title];
}
if( !file_exists($file_name) ){
touch( $file_name );
chmod( $file_name, 0666 );
echo('Info - ファイル作成完了。 file name:['.$file_name.']');
$handle = fopen( $file_name, 'w');
fwrite( $handle, $contents);
fclose( $handle );
}else{
// すでにファイルが存在する為エラーとする
echo('Warning - ファイルが存在しています。 file name:['.$file_name.']');
exit();
}
}
}
?>
お礼
ありがとうございました。 良く分かりました。くだらない質問にお答えいただきありがとうございました。