dave
dave

Reputation: 17

$_POST variable is duplicating

I do not even know how to google this one...imagine it is something stupid...but any help would be great...

passing a variable when submitting a form...when echo the $_POST it is good...but when i put it into a php variable it is duplicated

 <?

 //list transactions by month
 if ($_POST['m']=="yes"){
 $table = $_POST['month'];
 $_SESSION['table']=$_POST['month'];

 $conn = mysql_connect("localhost", "mss_records", "3205") or die(mysql_error());
 mysql_select_db('store_records', $conn) or die(mysql_error());

 $result = mysql_query("SELECT * FROM $table");

 while($row = mysql_fetch_array($result))
 {
 $id=$row['transaction'];
 $date=$row['date'];
 $time=$row['time'];
 $paid=$row['payment'];
 $total=$row['total'];
 echo '<style type="text/css">
 <!--
 .list {
 font-family: Georgia, "Times New Roman", Times, serif;
 font-size: 12px;
 color: #000;
 padding: 2px;
 border: 2px solid #009;
 }
 .view {
 width: 100px;
 }
 -->
 </style>
 <div class="list">
 <p><span style="color: #900">Transaction #</span>'.$id.'
 <span style="color: #900">Date:</span>'.$date.'
 <span style="color: #900">Time:</span>'.$time.'<span style="color: #900">
 Paid By:</span>'.$paid.' <span style="color: #900">Total:</span>'
 .number_format($total, 2).'
 <form name="form1" method="post" action="find.php">
 <label>
 <input type="submit" name="view" id="view" value="'.$id.'">
 </label>
 </form>
 </p>
 </div>
 <p></p>';
 }
 }
 //view transaction after viewing by month
 if (isset($_POST['view'])){


 $conn = mysql_connect("localhost", "mss_records", "3205") or die(mysql_error());
 mysql_select_db('store_records', $conn) or die(mysql_error());

 $table = $_SESSION['table'];
 echo "this is the number  ".$_POST['view'];
 $post=$_POST['view'];
 echo "this is the post   ".$post;
 $result = mysql_query("SELECT * FROM $table WHERE transaction = '$post'")
 or die(mysql_error());

 while($row = mysql_fetch_array($result))
 {    
 $items=$row['transaction'];
 }
 echo $items;  
 }
 ?>

after the user goes through the first selection and on the second window the output is...

this is the number 46this is the $post 4646 

Upvotes: 1

Views: 104

Answers (1)

VictorKilo
VictorKilo

Reputation: 1870

Your query is mysql_query("SELECT * FROM $table WHERE transaction = '$post'"). Therefore the value of $items=$row['transaction']; is also going to be 46. When you echo out everything without line breaks, it smashes everything together.

POST is not duplicating anything, you are just echoing $items directly after it.

Try this:

$table = $_SESSION['table'];
  echo "this is the number  ".$_POST['view']."<br /> \n";
  $post=$_POST['view'];
  echo "this is the post   ".$post."<br /> \n";
  $result = mysql_query("SELECT * FROM $table WHERE transaction = '$post'")
  or die(mysql_error());

  while($row = mysql_fetch_array($result))
  {    
    $items=$row['transaction'];
  }
  echo $items;  
  }

Upvotes: 1

Related Questions