0

Hi,

My transaction table looks like this.It includes following fields.
tran_ID,account_type,account_number,transaction_type,amount,Date

The records regarding each transaction is stored in this table. I want to know how i retrieve the data from this table into another form or table.The coding is what i want...

My actual purpose would be to allow cash supervisor to update records. But first it needs to retrieve data. Then only he can check things and update if necessary.

Thanks,
Heshan.

3
Contributors
8
Replies
9
Views
6 Years
Discussion Span
Last Post by heshanm
0

save this as hielo.php and try it:

<?php
define('TABLE_NAME','accounts');

$dbConnection= mysql_connect("localhost","username","password") or die( mysql_error() );

$fields=array(	'tran_ID'=>array('label'=>'Transction ID','format'=>"%d")
				,'account_type'=>array('label'=>'Account Type','format'=>"'%s'")
				,'account_number'=>array('label'=>'Account Number','format'=>"'%s'")
				,'transaction_type'=>array('label'=>'Transaction Type','format'=>"'%s'")
				,'amount'=>array('label'=>'Amount','format'=>"'%s'")
				,'Date'=>array('label'=>'Date','format'=>"'%s'")
				);

mysql_select_db("dbName") or die( mysql_error() );

if( isset($_POST['update']) && !empty($_POST['update']) )
{
	updateRecord($_POST['tran_ID'], $dbConnection);
}
elseif( isset($_POST['edit']) && !empty($_POST['edit']) )
{
	showSelectedRecord($_POST['tran_ID'], $dbConnection);
}
else
{
	showAllRecords($dbConnection);
}
mysql_close();
exit();

function showAllRecords($dbConnection)
{
  $sql = sprintf("SELECT `tran_ID`,`account_type`,`account_number`,`transaction_type`,`amount`,`Date` FROM `%s`",TABLE_NAME);
  $result=mysql_query($sql) or die( mysql_error() );
  $total=mysql_num_rows($result);

  if( 0==$total )
  {
    echo "<p>No records found.</p>";
  }
  else
  {
    $row=mysql_fetch_assoc($result);
	$id=$row['tran_ID'];

    echo '<table>';
    echo '<thead><tr><th>' . implode( '</th><th>', $keys) . '</th></tr></thead><tbody>';
	unset($row['tran_ID']);
    do{
      echo '<tr><td>' . implode('</td><td>',$row) . '</td><td><form method="post" action="' . $_SERVER['PHP_SELF'] . '"><input type="hidden" name="tran_ID" value="' . $id . '"/><input type="submit" name="edit" value="Edit"/></form></tr>';
    }while( $row=mysql_fetch_assoc($result) );
    echo '</tbody></table>';
  }
return $total;
}

function showSelectedRecord( $id,$dbConnection )
{
  global $fields;
  
  $sql = sprintf("SELECT `account_type`,`account_number`,`transaction_type`,`amount`,`Date` FROM `%s` WHERE `tran_ID`=%d", TABLE_NAME, mysql_real_escape_string($id));
  $result=mysql_query($sql) or die( mysql_error() );
  $total=mysql_num_rows($result);
  if(1==$total)
  {
  	$row=mysql_fetch_assoc();
	echo sprintf('<form method="%s" action="%s">','post',$_SERVER['PHP_SELF']);
	foreach($row as $k=$v){
		echo sprintf('<div><label for="%s">%s</label>: <input type="text" name="%s" value="%s"/></div>', $k, $fields[$k]['label'], $k, htmlentities($v, ENT_QUOTES) );
	}
	echo '<div><input type="hidden" name="tran_ID" value="'.$id.'"/><input type="submit" name="update" value="Update" /></div>';
	echo '</form>';
  }
  elseif(0==$total)
  {
    echo '<p>Unable to find a record with tran_ID='.$id.'</p>';
  }
  else
  {
    echo '<p>Unable to find a UNIQUE record with tran_ID='.$id.'. Instead, a total of '.$total.' records were found!</p>';
  }
}

function updateRecord($id, $dbConnection)
{
  global $fields;
  $sql="";
  unset($fields[$id]);
  foreach($fields as $k=>$v)
  {
    $f=",`%s`=".$fields[$k]['format'];
  	$sql.=sprintf($f, $k, mysql_real_escape_string($_POST[$k]) );
  }
  $sql=sprintf("UPDATE `%s` SET %s WHERE `tran_ID`=%d", TABLE_NAME, substr($sql,1), mysql_real_escape_string($id) );
  mysql_query($sql) or die(mysql_error());
  echo '<p>Record updated successfully - <a href="'.$_SERVER['PHP_SELF'].'">Start over</a></p>';
}
?>
0

Hello, i have similar problem.

In OOP PHP, i got 2 classes: Database and News. In News class i call DB function and get result (multidimensional 2D array). Now i have to display that array in index.php. I call News class (lets say get_news() function) from index.php but cant retrieve data and always get message: "Cannot use object of type News as array in ..."

Could someone help

0

My code is something like this:

database.php

class DB{
function news($user_id){
$q="select all from news where author id='$id'";
$result=$db->query($q);
for($i=0; $i<$r->num_rows; $i++){
   $arr[]=$result->fetch_array;
}
return $arr;               //works fine!
}}

news.php

class News{
function get_news($user_id){
global $db;
$news=$db->news($user_id);
print_r($news);        // works fine!
return $news;
}}

index.php // PROBLEM - HOW TO DISPLAY DATA FROM NEWS.PHP

$post=new News;
$post->get_news($user_id);
...

i tried
for($i=0; $i<5; $i++){
  foreach($post[$i] as $k=>$v){
      echo $v;                    //get error: "Cannot use object of type News as array in ..."
   }
}

Edited by newprimitive: n/a

0

newprimitive, please stop hijacking someone else's thread and open your own. I'll gladly help

0

sorry, i thought that a new thread, that is quite similar to this one, would be characterized as some kind of spamming.

Edited by newprimitive: n/a

0

@ hielo, it gives a parse error regarding this line.

foreach($row as $k=$v){

I already made a code to update the error transactions like this.

<?php

//getting the faulty transaction
$query = "SELECT * from transaction_table WHERE tran_ID=$_POST['tran_ID']";
mysql_query($query) or die(mysql_error());
$row=mysql_fetch_assoc($result);


//Correcting the account type table
if(strtolower($row['transaction_type'])=="deposit"){
            $operator = "-";
      }else{
            $operator = "+";
      }
      $query= "UPDATE `".$row['account_type']."` SET `balance`=(`balance`".$operator.$row['amount'].") WHERE `ID`='".$row['account_number']."'";
      mysql_query($query) or die(mysql_error());
	  

//deleting the faulty transaction
$query = "DELETE from transaction_table WHERE tran_ID=$_POST['tran_ID']";
mysql_query($query) or die(mysql_error());

?>

Therefore if i have retrieval data code it will be of. So i can change the erroneous record and clicks on " update" button

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.