我试图创建一个方法,可以使用任意数量的参数/参数。第一个也是唯一必需的参数包含数据库查询的值。传递的附加参数与表中的列匹配。
然后应在foreach循环内使用参数,以通过作为参数传递的查询和列名从数据库中检索数据。为此,我使用PHP函数中的func_get_args()
构建...
这是一个例子
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()
来轻松显示查询结果希望有意义。 ..任何帮助/建议表示赞赏。
表格
答案 0 :(得分:1)
您将4个参数作为参数传递给$results
而不是3个参数,这会打破您的displayResults()
循环,因为您的第一个索引不是foreach
希望,但是'location'
。您可以$results
看到自己。
您不需要在print_r($arg_list)
返回$stmt->fetchAll()
并再次转入selectAllJobs()
。通过将结果分配给displayResults()
,可以将结果保留在类(和私有)中。
您还需要两个$this-results
循环,一个用于循环遍历foreach
,另一个用于循环遍历$this-results
。所以这是代码:
$arg_list