[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как заменить $db->insert_id();
rullan
В Базу делается импорт с добавлением счетчика через - $db->insert_id();
else{

$db->query("INSERT INTO " . PREFIX . "_post (`autor`, `date`, `title`, `alt_name`, `descr`, `short_story`, `full_story`, `category`, `xfields`, `keywords`, `approve`, `allow_main`
) VALUES (
'{$author}', '{$date}', '{$title}', '{$translit}', '".htmlspecialchars(strip_tags(addslashes($description)))."', '{$short_story}', '{$description}', '{$category_ids}', '{$xfields}', '', '{$approve}', '{$allow_main}'
)");

$insert_id = $db->insert_id();
$db->query("INSERT INTO " . PREFIX . "_post_extras_cats (news_id, cat_id) VALUES ('{$insert_id}', '{$category_ids}')");
}


Мне нужно чтобы вместо автоматического создания ($db->insert_id();) счетчик считал от id 6032 и добавлял 1 к новой таблице ;)

_____________
SEO сайта и его продвижение - https://rullan.in.ua/
{ gamessutra@gmai.com }
rullan
Цитата (Valick @ 9.03.2021 - 21:31)
https://tproger.ru/explain/xyproblem/

wink.gif Так эта часть кода отвечает за массив и запрос на добавление в базу...
ДУмал может есть другая функция вместо $db->insert_id();
Или
можно дописать что-то типа $db->insert_id(6031++);
....
PHP только учу и в функциях мало разбираюсь.

_____________
SEO сайта и его продвижение - https://rullan.in.ua/
{ gamessutra@gmai.com }
Valick
rullan, один хороший человек давным давно сказал такую фразу.
- Не трогайте id он не ваш.
И хотя эта фраза была не в мой адрес, я её запомнил на всю жизнь.
Если у вас возникает потребность в манипуляциях с id это означает, что у вас 100% проблема с логикой приложения.
Я кинул ссылку не просто так, вам надо её внимательно прочесть и осознать. И тогда никому не придётся задавать наводящие вопросы.
Поставлю вопрос по другому.
С чего вы взяли, что id должен начинаться с 6 тысяч?

_____________
Стимулятор ~yoomoney - 41001303250491
rullan
Цитата (Valick @ 11.03.2021 - 01:26)
rullanС чего вы взяли, что id должен начинаться с 6 тысяч?

Потому что это id Новости в таблице - _post
в нее
функция insert_id() - добавляет счетчик ID при создании новой новости.
А МНЕ НУЖНО: Чтобы запись шла конкретно в новости с id от id 6032 до 6042... Без счетчика...

Это парсер - он сначала очищает все содержимое таблиц категории с новостями от id 6032 до 6042.
А потом записывает 10 новых новостей, а мне нужно чтобы он делал обновления новостей не меняя id новости.
rolleyes.gif

_____________
SEO сайта и его продвижение - https://rullan.in.ua/
{ gamessutra@gmai.com }
Kusss
$db->insert_id() - она ничего не записывает.
https://www.php.net/manual/ru/mysqli.insert-id.php

сделай счетчик через for или массив от 6032 до 6042.

$post = [];
$cats = [];

for ($i = 6032 ; $i <= 6042 ; $i++){

$post[] = "('{$i}', '{$author}', '{$date}', '{$title}', '{$translit}', '".htmlspecialchars(strip_tags(addslashes($description)))."', '{$short_story}', '{$description}', '{$category_ids}', '{$xfields}', '', '{$approve}', '{$allow_main}' )";
$cats[] = "('{$i}', '{$category_ids}')";

}

$sql = "
INSERT INTO
"
. PREFIX . "_post
(`id`, `autor`, `date`, `title`, `alt_name`, `descr`, `short_story`, `full_story`, `category`, `xfields`, `keywords`, `approve`, `allow_main`)
VALUES
"
. implode(',', $post);
$db->query($sql);

$sql = "
INSERT INTO
"
. PREFIX . "_post_extras_cats
(news_id, cat_id)
VALUES
"
. implode(',', $cats);
$db->query($sql);


НО лучше сделать update данных.

P.S. В чем смысл таблицы `post_extras_cats`, если в таблице постов есть `category` ?
Если новости могут быть сразу в нескольких разделах, нужно убирать `category` из `post`
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.