Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671

Постепенная запись в БД

09.03.2019, 07:18. Показов 870. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, необходимо сделать постепенную запись в бд, у меня не получается
Имеется:
БД
Таблица ADS:

ID | TEXT | SOURCE | SHOW
1 | Новость 1 | rg ru | 1
2 | Новость 2 | lenta ru | 3
3 | Новость 3 | ngazeta ru | 2
4 | Новость 4 | yandex ru | 1


Пояснение таблицы ADS - тут нужны 2 столбца - это SHOW и ID. SHOW - показывает сколько раз данную строку можно записать, ID используется для записи.

Также имеется таблица NEWS:

ID | TEXT
1 | Новость 1
2 | Новость 2
3 | Новость 3
4 | Новость 4

Пояснение таблицы NEWS, тут нам нужен только ID, для записи в 3 таблицу.


Имеется переменная $count_ads = 1 например, означает какое количество проходов должно получиться в таблице ADS_NEWS.

Мне нужно получить 3 таблицу с названием ADS_NEWS
C учетом того, что : $count_ads = 1, таблица должна быть следующая:

ID | ADS_ID| NEWS_ID
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
4 | 4 | 4



Если $count_ads = 2, то таблица ADS_NEWS должна быть следующей:

ID | ADS_ID| NEWS_ID
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
4 | 4 | 4
1 | 2 | 1
2 | 3 | 2
3 | 2 | 3
4 | 3 | 4


Пока писал сам немного запутался, но сейчас постараюсь поясняться:
Главная вещь - переменная $count_ads, она указывает сколько раз проходиться циклу чтобы получилась таблица ADS_NEWS.
В таблице ADS есть колонка SHOW она показывает сколько раз запись с данным ID можно записывать в таблицу ADS_NEWS.
При проходе цикла по таблице ADS, он вычитает 1 раз из SHOW, и как закончились строки таблицы, он заново идет по этой же таблице, только уже не записывает в таблицу ADS_NEWS те строки у которых SHOW остался 0.

Попробую также с помощью кода показать:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$get_result = ("SELECT * FROM NEW"); // выборка из NEW
        foreach ( $get_result as $value )
{
$get_result = ("INSERT INTO ADS_NEWS NEWS_ID=$value['id'] "); // вставка первых данных в новую таблицу ADS_NEWS
$id = $get_result_insert_id($get_result); // узнаем ID вставленной записи
}
 
$get_result2 = ("SELECT * FROM ADS"); // выборка из ADS
        foreach ( $get_result as $value )
{
$SHOW = $value['SHOW']; 
$get_result = ("UPDATE SET ADS_ID WHERE NEWS_ID=$id "); // обновление данных
$SHOW=$SHOW-1;
//может update сделать чтобы потом  в первой выборке добавить WHERE SHOW>0
}
Код для примера, вообще без какого либо синтаксиса, конечно работать не будет, это как алгоритмической пример.

Надеюсь меня поняли, можете помочь?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2019, 07:18
Ответы с готовыми решениями:

Постепенная загрузка из БД Mysql
Нужен теоретический совет: средствами php получаю данные из БД, необходимо реализовать следующее: этап 1. при первом запросе на...

Постепенная смена цвета
Всем привет! Подскажите, как можно постепенно сменить цвет с красного до белого, например. Пробовал сделать статичную функцию с...

Постепенная загрузка страницы
Есть страница с картинками, подгружаемыми из базы, грузятся по 4 штуки в ряд . Подскажите пожалуйста как реализовать постепенную загрузку...

3
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
09.03.2019, 09:57
delphi-sly, что-то с алгоритмом у Вас не то... скорее всего Вы пытаетесь почесать левой рукой правое ухо или наоборот. Попробуйте переформулировать задачу для себя, я почти уверен, что найдёте решение намного проще.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
09.03.2019, 12:06

Не по теме:

:stop::stop::stop:



Добавлено через 2 минуты
примерно понял! но концовку не понял вообщем
$count_ads откуда она берется и зачем постоянно создавать 3 таблицу?
Если $count_ads будет равна 1, а потом 105000 - то вы сначала сделайте одну запись, а потом 105000 ? Потом к примеру снова 1? и что тут ваще происходит
напишите лучше задачу саму, какая цель всего этого?
0
87 / 22 / 7
Регистрация: 23.09.2012
Сообщений: 671
10.03.2019, 14:31  [ТС]
Если $count_ads будет равна 1, а потом 105000 - то вы сначала сделайте одну запись, а потом 105000 ? Потом к примеру снова 1? и что тут ваще происходит

$count_ads пусть будет константа. и вообще пусть будет всегда 2.

Создавать таблицу 3 постоянно не нужно, нужно чтобы у имеющихся записей из таблицы 1 и 2 были данные связи рекламы и новости в 3 таблице.
Как то так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2019, 14:31
Помогаю со студенческими работами здесь

Постепенная смена цвета
Как сделать постепенную смену свойства color? то есть, например если надо сменить с #000 до #fff то менять сначала на #111 потом на #222 и...

Постепенная выдача писем
Добрый день. Попробую сформулировать проблему. Задали сделать почтовое приложение, которое должно уметь отправлять сообщения и...

Постепенная загрузка изображений
У меня вопрос: у меня идет загрузка изображений в одном потоке и программа ждет пока все не загрузится. Можно ли сделать так что бы по...

Апгрейд пк ( постепенная замена) г.Владивосток
Добрый вечер! Имеется: Кор 2 дуо 3гц, гФорс 9600гт, 4 планки кинстона по 1 гб 800мгц, бп хюникс 650в с кучей разъемов. Планирую взять амд...

Постепенная загрузка элементов из свойства на детальной странице
Например имеем свойство Дополнительные картинки MORE_INFO_IMAGES Изображений там может быть доходить до нескольких сотен. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru