任意の数の引数/パラメータを取ることができるメソッドを作成しようとしています。最初の唯一の必須パラメーターには、データベース照会の値が入っています。渡された追加の引数は、テーブル内の列と一致します。 foreachループ内で引数を使用して、引数として渡されたクエリ名と列名を使用してデータベースからデータを取得する必要があります。私はPHPの機能でfunc_get_args()
ビルドを使用し、このために...ここでforeachメソッド内のPDO DBクエリの結果を空にします
は、あなたが簡単に、単純にメソッドを呼び出すことにより、データベースを照会できるように、クラス内のメソッドのアイデアがある例
class Crud{
public $results;
function selectAllJobs(){
$sql="SELECT * from jobs";
$stmnt = $db->prepare($sql);
$stmnt->execute();
return $stmnt->fetchAll();
}
function displayResults($results){
$this->results = $results;
$numargs = func_num_args();
echo "Number of arguments: $numargs \n";
$arg_list = func_get_args();
foreach ($results as $index=> $result) {
echo $currentParam = $arg_list[$index];
echo $result[$currentParam];
echo'<br />';
}
$obj = new Crud();
$results = $obj->selectAllJobs();
$obj->displayResults($results, 'location', 'description', 'headline');
ですそして、簡単にクエリの結果を表示するだけで、displayResults()
という希望の方法を呼び出すことができます....任意のヘルプ/アドバイスをいただければ幸いです。あなたが最初のインデックスは、あなたが望むもの'location'
ではないのでdisplayResults()
へ$results
の代わりに、3つのパラメータを含め、これはあなたのforeach
ループを破る引数として4つのパラメータに渡す
TABLE
あなたの質問/問題は何ですか? – kunruh
@kunruh 'displayResults()'を実行しているときにIMが定義されずに文字列オフセットエラーが発生する 'selectAll()'メソッドはDBクエリを実行する必要があります。配列が返され、その配列は 'displayResult()'に渡されなければなりません。配列は結果を表示する上でループされます。 –