![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Mam problem z dublowaniem wartości pola w rekordach. Jednak najlepiej przedstawię sprawę na przykładzie (proszę nie zwracać uwagi na składnie). Kod <?php $pol = mysql_connect('localhost','*****','****'); mysql_select_db('db', $pol); $x = 0; while($x < 5000) { mysql_query("START TRANSACTION",$pol); $ksiega_rok = date('Y',time()); $r = mysql_query('SELECT max(ksiega_nr) AS ilosc FROM dane WHERE ksiega_rok = '.$ksiega_rok); $row = mysql_fetch_row($r); $ksiega_nr = $row[0]+1; $r = mysql_query('INSERT INTO dane set ksiega_nr = '.$ksiega_nr.', ksiega_rok = '.$ksiega_rok); if ($r!= 1) { mysql_query('ROLLBACK',$pol); } mysql_query('COMMIT',$pol); ++$x; } ?> Skrypt chodzi na kilku komputerach jednocześnie. Po zakończeniu działania, wpisuje
W konsekwencji pojawia się dużo krotek gdzie pole ksiega_nr ma taka sama wartość np. id | ksiega_nr | ksiega_rok 3780 | 3780 | 2009 4182 | 4182 | 2009 5312 | 5312 | 2009 Zależy mi oczywiście, aby numery się nie pokrywały. Wiecie może jak to osiągnąć? Jakś dodatkowa konfiguracja? Może błędnie rozumiem idee transakcji? Aaa wersja serwera: 5.1.32-community z góry dzięki:) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 13:10 |