Как сформировать sql запрос используя имена столбцов в виде массива?

Мой код
function average_col(){

$link = mysql_connect('localhost', 'root', '');
$fields = mysql_list_fields("registrator", "grade_in_the_group", $link);
$columns = mysql_num_fields($fields);
$arr_rating = array();
for ($i = 3; $i < $columns; $i++) {
$last_name_colum = mysql_field_name($fields, $i);
$arr_rating[] = $last_name_colum."
";

}
print_r($arr_rating);
echo "
".count($arr_rating);

$exp = substr($last_name_colum, -1);
$rating_add = "rating_".($exp + 1);
if($i >= 10){
$exp = substr($last_name_colum, -2);
$rating_add = "rating_".($exp + 1);
}
}
average_col();

Должен получиться запрос такого типа
SET `average`=(`rating_1`+ `rating_2` + `rating_3` + `rating_4`+ `rating_5`+ `rating_6`)/6
Данные в массиве это все имена столбцов в базе
Не могу понять, как мне написать код так, чтобы из массива выводились имена в запрос и между ними стоял знак +
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
assert('!empty($fieldNames) and is_array($fieldNames)');
$query = 'set field_name = (' . join(' + ', $fieldNames) . ')/' . count($fieldNames);


Вероятна ошибка проектирования схемы БД. С учётом использования давным-давно удалённых функций mysql_* вероятность ошибки, а не осмысленного выбора резко увеличивается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы