Я хочу иметь функцию SelectAll, которая принимает несколько аргументов (класс, таблица, поле сортировки и порядок сортировки.) Комментарии объясняют, что происходит (или что предполагается.)
public static function SelectAll($class, $table, $sort_field, $sort_order = "ASC")
{
/* First, the function performs a MySQL query using the provided arguments. */
$query = "SELECT * FROM " .$table. " ORDER BY " .$sort_field. " " .$sort_order;
$result = mysql_query($query);
/* Next, the function dynamically gathers the appropriate number and names of properties. */
$num_fields = mysql_num_fields($result);
for($i=0; $i < ($num_fields); $i++)
{
$fetch = mysql_fetch_field($result, $i);
$properties[$i] = "'".$fetch->name."'";
}
/*echo [$properties[0]; echo "<br />";}*/
/* Finally, the function produces and returns an array of constructed objects. */
while($row = mysql_fetch_assoc($result))
{
for($i=0; $i < ($num_fields); $i++)
{
$args[$i] = $row[$properties[$i]];
}
$array[] = call_user_func_array(new $class, $args);
} return $array; }
Теперь у меня проблема в том, что $row[$properties[$i]]
приводит к «неопределенному индексу».
Сразу после того, как функция соберет количество / имена полей и сохранит их в массиве, я могу отобразить значение $properties[0]
, и оно показывает, как должно, 'id', но $row[~anything here~]
просто не работает, если я не введу значение вручную, например $row['id']
.Как вы можете себе представить, очень расстраивает и сбивает с толку.
Почему это не сработает?Есть ли какие-либо решения или альтернативные способы выполнения этой функции?