Page 1 of 1

[SOLVED] duplicate entry &..

Posted: Wed Jul 14, 2004 5:25 pm
by ol4pr0
oke i got 2 problems here..

acct_num seems to return 1 when its empty, i can not seem to find why it returns 1
second problem is trans_id is auto increment however it return a duplicate entry.

my db.

Code: Select all

| Field     | Type        | Null | Key | Default    | Extras                                    | 
+-----------+-------------+------+-----+------------+-------------------------------------------+ 
| trans_id  | tinyint(4)  |      | PRI |            | auto_increment | insert,update,references | 
| date      | date        |      |     | 0000-00-00 |                | insert,update,references | 
| name      | varchar(20) |      |     |            |                | insert,update,references | 
| code      | char(3)     |      |     |            |                | insert,update,references | 
| check_num | varchar(6)  |      |     |            |                | insert,update,references | 
| inv_num   | varchar(4)  |      |     |            |                | insert,update,references | 
| amt       | varchar(7)  |      |     |            |                | insert,update,references | 
| dep       | varchar(7)  | YES  |     |            |                | insert,update,references | 
| bal       | varchar(7)  | YES  |     |            |                | insert,update,references | 
| acct_num  | varchar(17) | YES  |     |            |                | insert,update,references |
$_POST['acct_num'] // returns nothing
$acct_num = still1
# return of $acct_num
1
# return of print_r
Array (

Code: Select all

=> 107 [name] => AE [amt] => 50 [inv_num] => 50 [date] => 2004/07/14 [check_num] => 50 [acct_num] => [submit] => Continue ) 
[/quote]

page code

Code: Select all

<?	
require(\\"db.inc\\");
include(\\"config.inc\\");
#this is for the vendor form
if(isset($_POST['submit']))
{		

	$query = \\"select * from transactions\\";
	$result = mysql_query($query);

	if (mysql_num_rows($result)) {
		// loop through resulting rows, creating options
		while ($row = mysql_fetch_row($result)) {
	$bal=$row[8]-$_POST['amt'];
		}
	}
	else
	{
	$bal='';
	}
	if(strlen($_POST['amt'])>0)
	{
	$amt ='1';
	}
	else
	{
	$amt ='<font style=\\"color:'.$tcolour.'; font-size:'.$tfontsize.'px;\\">* Amount </font>';
	}
	if(strlen($_POST['inv_num'])>0)
	{
	$inv_num ='1';
	}
	else
	{
	$inv_num ='<font style=\\"color:'.$tcolour.'; font-size:'.$tfontsize.'px;\\">* Invoice Number</font>';
	}
	if(strlen($_POST['date'])>0)
	{
	$datem ='1';
	}
	else
	{
	$datem ='<font style=\\"color:'.$tcolour.'; font-size:'.$tfontsize.'px;\\">* Date</font>';
	}
	if(strlen($_POST['check_num'])>0)
	{
	$check_num ='1';
	}
	else
	{
	$check_num ='<font style=\\"color:'.$tcolour.'; font-size:'.$tfontsize.'px;\\">* Check Number</font>';
	}
	if(!empty($_POST['acct_num']))
	{
	$acct_num ='1';
	}
	else
	{
	$acct_num ='<font style=\\"color:'.$tcolour.'; font-size:'.$tfontsize.'px;\\">* Account Number</font>';
	}	
	if($amt=='1' && $inv_num=='1' && $datem=='1' && $check_num=='1' && $acct_num='1')
	{
	$query = \\"INSERT INTO \\".$pvtb.\\" (code,name,amt,inv_num,check_num,bal,date,acct_num) VALUES ('\\".$_POST['code'].\\"','\\".$_POST['name'].\\"','\\".$_POST['amt'].\\"','\\".$_POST['inv_num'].\\"','\\".$_POST['check_num'].\\"','\\".$bal.\\"','\\".$_POST['date'].\\"','\\".$_POST['acct_num'].\\"')\\";
	$result = mysql_query($query) or die(mysql_error());
	echo $acct_num;
	echo $_POST['acct_num'];
    print_r($_POST);
	
	echo '<body><div align=\\"center\\">';
	echo '<form action=\\"'.$printpage.'?form=print\\" method=\\"post\\"><table width=\\"526\\" bgcolor=\\"#66CC66\\"  align=\\"center\\"><tr><td width=\\"106\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\">';
	echo '<b>Date</td>';
	echo '<td width=\\"119\\" bgcolor=\\"#66CC66\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\">';
	echo '<b>Name</td>';
	echo '<td width=\\"111\\" bgcolor=\\"#66cc66\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\"><b>Code</td>';
	echo '<td width=\\"76\\" bgcolor=\\"#66cc66\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\"><b>Check Num</td>';
	echo '<td width=\\"62\\" bgcolor=\\"#66cc66\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\"><b>Inv Num</td>';
	echo '<td width=\\"119\\" bgcolor=\\"#66cc66\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\"><b>Amt</td>';
	echo '<td width=\\"150\\" bgcolor=\\"#66cc66\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\"><b>Deposit</td>';
	echo '<td width=\\"72\\" bgcolor=\\"#66cc66\\"><B><font size=\\"1\\" color=white face=\\"Verdana, Arial, Helvetica, sans-serif\\"><b>Bal</td>';
	echo '</tr>';

	$query = mysql_query(\\"SELECT * FROM transactions WHERE inv_num='\\".$_POST['inv_num'].\\"' AND check_num='\\".$_POST['check_num'].\\"' AND acct_num='\\".$_POST['acct_num'].\\"'\\"); 
	$result = mysql_query($query);
	
	$i=0;
	$coloralternator='';
	while($row = mysql_fetch_assoc($query)) {
	$color = ($coloralternator++ %2 ? \\"FFFFFF\\" : \\"FFFFFF\\");
	
	echo \\"<TR BGCOLOR=\\\"#$color\\\"><TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\">\\".$row['code'].\\"</FONT></TD>\\";
	echo \\"<TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\"><input type=\\\"hidden\\\" name=\\\"olddate\\\" value=\\\"\\".$row['date'].\\"\\\">\\".$row['date'].\\"</FONT></TD>\\";
	echo \\"<TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\">\\".$row['code'].\\"</FONT></TD>\\";
	echo \\"<TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\"><input type=\\\"hidden\\\" name=\\\"check_num\\\" value=\\\"\\".$row['check_num'].\\"\\\">\\".$row['check_num'].\\"</FONT></TD>\\";
	echo \\"<TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\"><input type=\\\"hidden\\\" name=\\\"inv_num\\\" value=\\\"\\".$row['inv_num'].\\"\\\">\\".$row['inv_num'].\\"</FONT></TD>\\";
	echo \\"<TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\">\\".$row['amt'].\\"</FONT></TD>\\";
	echo \\"<TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\">\\".$row['dep'].\\"</FONT></TD>\\";
	echo \\"<TD><font size=\\\"1\\\" face=\\\"Verdana, Arial, Helvetica, sans-serif\\\">\\".$row['bal'].\\"</FONT></TD>\\";
	echo \\"</tr></table><p>\\";

	echo '<b>'.$deposit_text.'</b>&nbsp;';
	echo '<input type=\\"hidden\\" name=\\"acct_num\\" value=\\"'.$_POST['acct_num'].'\\">';
	echo '<input type=\\"text\\" name=\\"dep\\" style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
	echo '<input type=\\"submit\\" name=\\"deposit\\" value=\\"Submit\\" style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
	echo '</form>';
	exit();
	}
	}
}
?>
<HTML>
<head>
</head>
<BODY><center>
<br>
 <TABLE WIDTH=\\"526\\" BORDER=6>
 <TR><TD>

<!-- this section just for making the tab's at the top of the main box area -->
<b><font size=4 ><SCRIPT LANGUAGE='Javascript'>
document.write(\\"<XMP>\\")
document.write(\\"     Code Select:\t    Vendor Select:\\")
document.write(\\"</XMP>\\")
</SCRIPT>
<?
$date = date(\\"Y/m/d\\");
echo '</b></font><center>';
echo '<form action=\\"?action=pv\\" method=\\"post\\">';
echo '<select size=\\"1\\" name=\\"code\\" style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
#Query section for Code Numbers
$query = \\"SELECT * FROM code_numbers where 1\\";
$result = mysql_query($query);

if (mysql_num_rows($result)) {
    // loop through resulting rows, creating options
    while ($row = mysql_fetch_row($result)) {
       echo \\"<option>\\".$row['0'].\\"  \\".$row['1'].\\"</option>\\";



    }
}
echo '</select>';
# Query section for Vendor names 
echo '<select size=\\"1\\" name=\\"name\\" style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';

$query = \\"SELECT * FROM vendors\\";
$result = mysql_query($query);

if (mysql_num_rows($result)) {
    // loop through resulting rows, creating options
    while ($row = mysql_fetch_row($result)) {
       echo \\"<option>$row[2]</option>\\";
    }
}
echo '</select><p>';
if($amt == '1')
{
echo '<font size=\\"2\\">Amount:&nbsp;<input type=\\"text\\" name=\\"amt\\" value=\\"'.$_POST['amt'].'\\" size=7 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
}
else{ echo '<font size=\\"2\\">Amount:&nbsp;<input type=\\"text\\" name=\\"amt\\" size=7 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">'.$amt.'';
}
if($inv_num == '1')
{
echo '&nbsp;Invoice Num:&nbsp;<input type=\\"text\\" name=\\"inv_num\\" value=\\"'.$_POST['inv_num'].'\\" size=4 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
}
else{
echo '&nbsp;Invoice Num:&nbsp;<input type=\\"text\\" name=\\"inv_num\\" size=4 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">'.$inv_num.'';
}
if($datem == '1')
{
echo '&nbsp;Date:&nbsp;<input type\\"date\\" name=\\"date\\" value=\\"'.$date.'\\" size=8 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
}
else{
echo '&nbsp;Date:&nbsp;<input type\\"date\\" name=\\"date\\" value=\\"'.$date.'\\" size=8 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
}
echo '<p>';
if($check_num == '1')
{
echo '&nbsp;Check Num:&nbsp;<input type=:text\\" name=\\"check_num\\" value=\\"'.$_POST['check_num'].'\\" size=5 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
}else{
echo '&nbsp;Check Num:&nbsp;<input type=:text\\" name=\\"check_num\\" size=5 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">'.$check_num.'';
}
if($acct_num == '1')
{
echo '&nbsp;Account Num:&nbsp;<input type=\\"text\\" name=\\"acct_num\\" value=\\"'.$_POST['acct_num'].'\\" width=\\"50\\" size=5 style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
}else{
echo '&nbsp;Account Num:&nbsp;<input type=\\"text\\" name=\\"acct_num\\" value=\\"\\" size=5 width=\\"50\\" style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">'.$acct_num.'';
}
echo '<p align=left>';
echo '<font color=red>';
echo 'No Comma''s in Amount !!!';
echo '</font>';
echo '</table><p><input type=\\"submit\\" name=\\"submit\\" value=\\"Continue\\" style=\\"font-family: v; font-size: 10pt; color: #5E6A7B; border: 1px solid #5E6A7B; padding-left: 1; padding-right: 1; padding-top: 1; padding-bottom:1\\">';
echo '</p>';
echo '</FORM>';
echo '</BODY></HTML>';
?>

feyd | fixed the odd formatting of the table structure

Posted: Wed Jul 14, 2004 6:55 pm
by Buddha443556
Re Problem One

Could this be the problem?

Code: Select all

if(!empty($_POST['acct_num'])) 
   { 
   $acct_num ='1'; 
   } 
   else 
   { 
   $acct_num ='<font style="color:'.$tcolour.'; font-size:'.$tfontsize.'px;">* Account Number</font>'; 
   }
Try...

Code: Select all

if(isset( $_POST['acct_num'] ) === true && empty( $_POST['acct_num'] ) === false) 
   { 
   $acct_num ='1'; 
   } 
   else 
   { 
   $acct_num ='<font style="color:'.$tcolour.'; font-size:'.$tfontsize.'px;">* Account Number</font>'; 
   }

Posted: Wed Jul 14, 2004 6:58 pm
by feyd
empty() checks if the term is set..

Posted: Wed Jul 14, 2004 7:09 pm
by ol4pr0
i had strlen before that.. got same result on that one.

Code: Select all

if(isset( $_POST['acct_num'] ) === true && empty( $_POST['acct_num'] ) === false)
   {
   $acct_num ='1';
   }
   else
   {
   $acct_num ='<font style="color:'.$tcolour.'; font-size:'.$tfontsize.'px;">* Account Number</font>';
   }
same result.. its still 1

Something is setting it as not empty however can.t find out where it is.

Posted: Wed Jul 14, 2004 7:21 pm
by ol4pr0
result of the insert query.. also returns and Resource id 8 error, pero no acct_num so..

Also this query tries to insert trans_id 127 only as for the duplicate id..so dont know either why its doing like that

[quote]
INSERT INTO transactions (code,name,amt,inv_num,check_num,bal,date,acct_num) VALUES ('213','AE','50','80','80','50','2004/07/14','')
Resource id #8
[quote]

Posted: Wed Jul 14, 2004 7:22 pm
by Buddha443556

Code: Select all

if($amt=='1' && $inv_num=='1' && $datem=='1' && $check_num=='1' && $acct_num='1')
look an equal sign!

Posted: Wed Jul 14, 2004 7:39 pm
by redmonkey
Your trans_id column is defined as a tinyint therefore the maximum number you will get in there is 127. You need to define your trans_id to something that is capable of holding larger values.

Posted: Wed Jul 14, 2004 7:42 pm
by ol4pr0
Thanks budha and thanks redmonkey..