вопрос
За редактирование новости в админке, отвечает файл editnews.php, в нем есть следующий код:
Мне абсолютно не понятно зачем тут вообще используется цикл, если при любом раскладке, данный sql запрос всегда вернет 1 строку. И второй момент, зачем нада было использовать в массиве $item_db в качестве ключей числа, когда гораздо удобнее и нагляднее было бы использовать названия полей.
К чему такие извращения? Или здесь есть какие то нюансы о которых я не знаю?
По логике данный код должен выглядеть хотя бы так:
$db->query( "SELECT id, autor, date, xfields, title, category, approve, tags, news_id, disable_index, disable_search, need_pass, allow_rss, allow_rss_turbo, allow_rss_dzen FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE id = '$id'" );
while ( $row = $db->get_row() ) {
$item_db[0] = $row['id'];
$item_db[1] = $row['autor'];
$item_db[2] = $row['tags'];
$item_db[3] = $row['approve'];
$item_db[4] = $db->safesql( $row['title'] );
$item_db[5] = explode( ',', $row['category'] );
$item_db[6] = $row['news_id'];
$item_db[7] = strtotime( $row['date'] );
$item_db[8] = $row['category'];
$xf_existing = xfieldsdataload($row['xfields']);
}
Мне абсолютно не понятно зачем тут вообще используется цикл, если при любом раскладке, данный sql запрос всегда вернет 1 строку. И второй момент, зачем нада было использовать в массиве $item_db в качестве ключей числа, когда гораздо удобнее и нагляднее было бы использовать названия полей.
К чему такие извращения? Или здесь есть какие то нюансы о которых я не знаю?
По логике данный код должен выглядеть хотя бы так:
$row = $db->super_query( "SELECT id, autor, date, xfields, title, category, approve, tags, news_id, disable_index, disable_search, need_pass, allow_rss, allow_rss_turbo, allow_rss_dzen FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE id = '$id'" );
$item_db[0] = $row['id'];
$item_db[1] = $row['autor'];
$item_db[2] = $row['tags'];
$item_db[3] = $row['approve'];
$item_db[4] = $db->safesql( $row['title'] );
$item_db[5] = explode( ',', $row['category'] );
$item_db[6] = $row['news_id'];
$item_db[7] = strtotime( $row['date'] );
$item_db[8] = $row['category'];
$xf_existing = xfieldsdataload($row['xfields']);