Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подсчет количества записей до выполнения INSERT / 11 сообщений из 11, страница 1 из 1
12.02.2013, 19:45
    #38148461
Aargh89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
Вопрос такой, мне нужно посчитать количество записей до инсерта
и количество записей после

где я не прав? судя по всему, он считает записи только после вставки (судя по результату)

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
<?php 

// Заполнение нормативно-правовой базы проверки по задаче

require_once "un.api.php";
$log->log("ok");
$sch=$ui->getfield('SYS_GUID'); 	
$count1 = "select count(sys_guid) from check_npa_f where check_npa_f.sys_guidfk = '$sch'";
$db->exec($count1);
$sql = "insert into check_npa_f (check_npa_f.sys_guidfk, check_npa_f.ofidocfk)
		select '$sch',
		sys_guid from  (select distinct npa_base.sys_guid from npa_base
		left join npa_events on npa_base.sys_guid=npa_events.sys_guidfk
		left join checks_events on checks_events.sys_guid=npa_events.events
		left join CHECK_F_EVENT on CHECK_F_EVENT.EVENTS = CHECKS_EVENTS.SYS_GUID
		left join CHECKS_F on CHECK_F_EVENT.SYS_GUIDFK = CHECKS_F.SYS_GUID
		where checks_f.sys_guid='$sch' and npa_base.sys_guid not in  (select check_npa_f.ofidocfk from
		check_npa_f where check_npa_f.sys_guidfk='$sch'))
		";
$db->exec($sql);
$count = "select count(sys_guid) from check_npa_f where check_npa_f.sys_guidfk = '$sch'";
$msg = 'Записей добавлено: '.$db->getone($count).' Записей было: '.$db->getone($count1);
gt_state($msg);
$ui->refresh('CHECK_NPA_F');
?>
...
Рейтинг: 0 / 0
12.02.2013, 20:14
    #38148497
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
...
Рейтинг: 0 / 0
12.02.2013, 20:20
    #38148504
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
http://pear.php.net/manual/en/package.database.db.db-common.getone.php DB_common::getOne() – Runs a query and returns the first column of the first rowВы запускаете оба запроса (и count, и count1) после INSERT-а. И чему-то удивляетесь...
...
Рейтинг: 0 / 0
12.02.2013, 20:29
    #38148507
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
...
Рейтинг: 0 / 0
12.02.2013, 23:42
    #38148678
Aargh89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
miksoft,

Как это после инсерта? Я же делаю exec($count1) до того как exec($sql) или не?
...
Рейтинг: 0 / 0
12.02.2013, 23:43
    #38148680
Aargh89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
А, прошу прощения, кажется дошло...
...
Рейтинг: 0 / 0
12.02.2013, 23:44
    #38148682
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
Aargh89miksoft,

Как это после инсерта? Я же делаю exec($count1) до того как exec($sql) или не?Делаете, только результат этого exec() никак не используете. А после инсерта делаете снова с помощью getOne(). Я же не просто так именно его документацию процитировал, а чтобы вы обратили внимание, где у вас по коду getOne() стоит и для чего.
...
Рейтинг: 0 / 0
13.02.2013, 09:53
    #38148901
Aargh89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
miksoft,

Да, всё вышло! большое спасибо, что уделили время!
...
Рейтинг: 0 / 0
13.02.2013, 10:45
    #38148992
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
Да лучше стопицот запросов сделать, чем взять данные из affectedRows
...
Рейтинг: 0 / 0
13.02.2013, 14:48
    #38149608
Aargh89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
Hett,

а есть ли разница в производительности?
...
Рейтинг: 0 / 0
13.02.2013, 14:51
    #38149619
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества записей до выполнения INSERT
Aargh89Hett,

а есть ли разница в производительности?Разница в производительности, конечно, есть. Т.к. по варианту Hett-а на один запрос меньше получается.
Но и в результате может оказаться разница. Например, в случае, когда параллельно другая сессия вставляет/удаляет записи.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Подсчет количества записей до выполнения INSERT / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]