Jump to content
php.lv forumi

INT dati MYSQL+PHP


Cibiņš

Recommended Posts

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.

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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 by nikidijs
Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...