プロジェクトで作業中に私は自己教えていますので、私のコードは最もエレガントではないかもしれません。私はまだ学んでいます。私は本当に私のコードを少しきれいにして、多量のスパゲッティコードを置き換えるための分かりやすい機能を作りたいと思っています。私はうまく動作するテスト関数を得ましたが、私は問題を抱えていてエラーを発生させない関数を使ってテーブルを生成したいので、デバッグするのが面倒です。テーブル生成のための外部PHPインクルード
<html>
<?php
require 'header.php'
?>
<head>
<title>
Asset Manager
</title>
</head>
<body>
<?php
include_once('navBar.php');
?>
<?php
include_once('tblDesc.php');
?>
</body>
のfunctions.php:
<?php
function initTable($query, $tblID){
// Begin Table generation
print "<table id='".$tblID."'> ";
$result = $dbAssetManTest->query($query);
$row = $result->fetch(PDO::FETCH_ASSOC);
print "<thead>";
print " <tr> ";
// pulls field data for table generation
foreach ($row as $field => $value){
print " <th>$field</th> ";
}
print " </tr> ";
print "</thead>";
// end foreach
//body of Table
print "<tbody>";
// pulls live data from DB
$data = $dbAssetManTest->query($query);
$data->setFetchMode(PDO::FETCH_ASSOC);
foreach($data as $row){
print " <tr> ";
foreach ($row as $name=>$value){
print " <td>$value</td> ";
} // end field loop
print " </tr> ";
} // end record loop
print "</tbody>";
print "</table>";
}
?>
私は
index.phpを以下のように "のfunctions.php"、 "tblDesc.php"、および "index.phpの" 3つのファイルを持っています
tblDesc.php
<?php
require "functions.php";
// Begin Table generation
$queryBR="select foo from bar;";
$tblIDBR='tblFooBar';
initTable($queryBR, $tblIDBR);
?>
私は機能initTable
の内容を取り、ラインを交換する場合functions.phpからの内容で10が動作しますが、私がしようとすると、それを渡す関数を分離するvauluesクエリとtableID私のページは、<table id='tblBROnHand'>
で停止を停止します。
なこれは動作しますが、ひどい見えたよう:
<?php
// Begin Table generation
$queryBR="select foo from bar;";
$tblID='tblFooBar';
// Begin Table generation
print "<table id='".$tblID."'> ";
$result = $dbAssetManTest->query($queryBR);
$row = $result->fetch(PDO::FETCH_ASSOC);
print "<thead>";
print " <tr> ";
// pulls field data for table generation
foreach ($row as $field => $value){
print " <th>$field</th> ";
}
print " </tr> ";
print "</thead>";
// end foreach
//body of Table
print "<tbody>";
// pulls live data from DB
$data = $dbAssetManTest->query($queryBR);
$data->setFetchMode(PDO::FETCH_ASSOC);
foreach($data as $row){
print " <tr> ";
foreach ($row as $name=>$value){
print " <td>$value</td> ";
} // end field loop
print " </tr> ";
} // end record loop
print "</tbody>";
print "</table>";
?>
すべてのヘルプは大幅にappreaciatedされるだろう!
はini_set入れ機能にパラメータを追加呼び出すとき'display_errors'、1);ファイルの始めに、またはPHP/Apacheエラーログを参照してください。 – user2182349
カスタム関数なしでコードを実行してください。それが動作すれば、何かを追加する必要があることがわかります。これは可変スコープです。 –
私はあなたがスコープの問題であると思うでしょう。通常、コードを関数に移動するときです。 – RiggsFolly