Cibiņš Posted September 9, 2011 Report Share Posted September 9, 2011 Tātad man ir izveidots skripts, kas pie inserta katram nākošajam ierakstam laukā company_id piešķir par 1 vērtību lielāku skaitli. Ja tabula ir tukša un tajā nav ierakstu, pie inserta automātiski šis skripts pievieno skaitli 1, un pie katra nākošā inserta tiek palielināta skaitļā vērtība uz 2,3,4,5, utt... $sql="SELECT MAX(company_id) AS MAXcompany_id FROM system_companies"; $result=mysql_query($sql); $row=mysql_fetch_array($result); if(!$row){ $comp_id = 1001; } else { $comp_id = $row['MAXcompany_id']+1; } Tā jau viss strādā. Bet problēma ir sekojoša. Tiek ignorēts $comp_id = 1001; Respektīvi, man vajag lai ja tabulā nav ierakstu, pie inserta tiek ielikts skaitlis 1001, un pie katra nākošā inserta tiek ielikts 1003, 1004, 1005 utt..bet šobrīd viņš turpina likt 1,2,3,4.. Mēģināju pie $sql=... novākt tos MAX, tad itkā liek skaitļus, bet ieliek 1001,1002 un tad tālāk pie katra nākošā ieraksta skaitļi dublējās, tipa 1002,1002,1002 utt MYSQL auto_increment man šeit neder. Quote Link to comment Share on other sites More sharing options...
nikidijs Posted September 9, 2011 Report Share Posted September 9, 2011 Provē $rows=mysql_fetch_array(mysql_query("SELECT COUNT(company_id) AS company_id FROM system_companies")); $max=mysql_fetch_array(mysql_query("SELECT MAX(company_id) AS company_id FROM system_companies")); if ($rows['company_id']<=0) { $comp_id=1001; } else { $comp_id=$max['company_id']+1; } šitam vajadzētu strādāt. Taču kapēc tavs varinats nestrādā, man ar nav ne jausmas. Tā kā pats arī labprāt uzzināšu :) Quote Link to comment Share on other sites More sharing options...
Cibiņš Posted September 9, 2011 Author Report Share Posted September 9, 2011 Provē $rows=mysql_fetch_array(mysql_query("SELECT COUNT(company_id) AS company_id FROM system_companies")); $max=mysql_fetch_array(mysql_query("SELECT MAX(company_id) AS company_id FROM system_companies")); if ($rows['company_id']<=0) { $comp_id=1001; } else { $comp_id=$max['company_id']+1; } šitam vajadzētu strādāt. Taču kapēc tavs varinats nestrādā, man ar nav ne jausmas. Tā kā pats arī labprāt uzzināšu :) BINGO!!! Cepums Tev! Quote Link to comment Share on other sites More sharing options...
nikidijs Posted September 9, 2011 Report Share Posted September 9, 2011 (edited) Da i savam variantam pieliec if (!$row['MAXcompany_id'])... nevis pliku if (!row)... . Tas arī ir tas nestrādāšanas iemesls Tā laikam būtu labāk, nekā veidot divus pieprasijumus, kā es rādiju. Taču paskaidrot tāpat nemāku :/ Edited September 9, 2011 by nikidijs Quote Link to comment Share on other sites More sharing options...
larvae Posted September 15, 2011 Report Share Posted September 15, 2011 UPDATE system_companies SET company_id = SELECT MAX(company_id, 1000) + 1 WHERE bla bla bla Šo inkrementēšanu laikam vispār vajadzētu triggerī ielikt. Bet nu risinājums kā tāds ir gana nesmuks imho. Quote Link to comment Share on other sites More sharing options...
Kaklz Posted September 16, 2011 Report Share Posted September 16, 2011 Kāpēc neder mysql auto_increment? Quote Link to comment Share on other sites More sharing options...
Maris-S Posted September 16, 2011 Report Share Posted September 16, 2011 Risinājums neizskatās pēc optimālā, bet nu te jau Larvae parādīja kā to darīt ar MySql, ko arī vajadzētu mēģināt darīt. Nikidijs, gribēju tikai piezīmēt ka nevajag veidot divus pieprasījumus, Tavējos divus vaicājumus, var apvienot vienā. Tālāk piemērs. select min(id), max(id), count(id), sum(id) from table_name Quote Link to comment Share on other sites More sharing options...
nikidijs Posted September 18, 2011 Report Share Posted September 18, 2011 Maris-S - paldies, noderēs :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.