Bonjour à tous.
J'ai de gros soucis.
D'abord je vous présente le code process.php et detail.php qui me fatiguent beaucoup car je n'arrive pas à corriger les erreurs les concernant:
******************* DEBUT CODE FICHIER process.php ********************
Code : Tout sélectionner
<?php
function transaction()
{
$id = $_POST['user_id'];
$acc_no = $_POST['acc_no'];
$type = $_POST['type'];
$amt = str_number($_POST['amt']);
$cmt = $_POST['desc'];
$dot = $_POST['dot'];
$sql = "SELECT balance FROM tbl_accounts WHERE user_id = $id AND acc_no = $acc_no AND status = 'ACTIVE'";
$result = dbQuery($sql);
if (dbNumRows($result) == 1) {
extract(dbFetchAssoc($result));
if($type == "debit") {
//check if amt is more then $balance
if($balance < $amt) {
header('Location: index.php?msg=' . urlencode('Account balance is less, fail to transfer fund.'));
exit;
}
}
$total = $type == "credit" ? ($balance + $amt) : ($balance - $amt);
if($total <= 0) {
//return here...
}
$sql = "UPDATE tbl_accounts SET balance = $total WHERE user_id = $id AND acc_no = $acc_no";
dbQuery($sql);
}
?>
******************* FIN CODE FICHIER process.php ********************
1 - Sachant pour afficher $1 (montant de la variable $amt - 1 Dollar) au format "NumberFormatter::formatCurrency()" du code ISO 4217 dans la devise USD ($ Dollars americain), je dois normalement faire ceci:
<?php
$amt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $amt->formatCurrency(1, 'USD');
?>
Alors, mon souhait est que la variable $amt du code process.php ci-dessus soit au format "NumberFormatter::formatCurrency()" et que le montant ($amt) soit envoyé à ce même format ce qui permettra au Champs balance des 2 tables "tbl_accounts" et "tbl_cardinfos" de s'afficher à ce format dans la base de données.
Comment donc réussir à modifier $amt au format "NumberFormatter::formatCurrency()" dans le code Process.php ci-dessus pour que ce format agisse sur les champs "balance" de chacune des 2 tables "tbl_accounts" et "tbl_cardinfos" ???
******************* DEBUT CODE FICHIER detail.php ********************
Code : Tout sélectionner
<?php
if (!defined('WEB_ROOT')) {
exit;
}
if (isset($_GET['accId']) && $_GET['accId'] > 0) {
$accId = $_GET['accId'];
} else {
header('Location: index.php');
}
$sql = "SELECT u.id, u.fname, u.lname, u.bdate, u.is_active, u.email, u.phone, u.pics,
a.acc_no, a.type, a.balance,
ad.address, ad.city, ad.state, ad.zipcode
FROM tbl_users u, tbl_accounts a, tbl_address ad
WHERE u.id = a.user_id AND ad.user_id = u.id
AND a.id = $accId";
$result = mysql_query($sql) or die('Cannot get product. ' . mysql_error());
$row = mysql_fetch_assoc($result);
extract($row);
$atype = "";
if($type == "CA"){$atype = "Checking Account";}
else if($type == "SA") {$atype = "Saving Account";}
else if($type == "FDA") {$atype = "Fixed deposit Account";}
?>
<p align="center" id="mainHead">User Details</p>
<form action="process.php?action=transaction" method="post" id="frmTransaction">
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable">
<tr>
<td width="150" class="label">Transaction Type</td>
<td colspan="2" class="content">
<select name="type" id="type">
<option value="#"> -- select transaction type --</option>
<option value="credit">Credit Fund</option>
<option value="debit">Debit Fund</option>
</select>
</td>
</tr>
<tr>
<td width="150" class="label">Amount</td>
<td colspan="2" class="content"><input type="text" name="amt" id="amt" size="10" /> </td>
</tr>
</table>
<p align="center">
<input name="btnBack" type="button" id="btnBack" value=" Back " onClick="window.history.back();" >
<input name="btnTxType" type="button" id="btnTxType" value=" Proceed Transaction ">
</p>
</form>
******************* FIN CODE FICHIER detail.php ********************
2 - Quand on sélectionne l'option "Debit Fund" sur la page detail.php juste ci-dessus, le montant ($amt) à débiter ne débite pas du tout et en faite il n'y a aucune action sur la balance de l'utilisateur concerné lorsqu'on écrit un montant dans le Formulaire "amount" correspondant à la variable $amt et que l'on clique par la suite sur le bouton "Proceed Transaction", ça ne diminue pas le montant à débiter alors que l'option "Credit Fund" qui permet d'ajouter des fonds sur la balance de l'utilisateur sélectionné marche très bien.
Comment corriger cet erreur là à partir du code Process.php qui est la page d'action du formulaire de detail.php pour enfin réussir à bien faire fonctionner l'option "Debit Fund" pour qu'elle fonctionne très bien comme l'autre "Credit Fund" qui fonctionne déjà très bien ???
3 - Sur le code Process.php ci-dessus, on remarque la variable $sql qui sélectionne le champs "balance" correspondant à $balance dans la table "tbl_accounts" seulement.
Alors comme je viens de créer une nouvelle table "tbl_cardinfos" qui a également le même champs "Balance" que la table "tbl_accounts" et auquel je souhaiterais appliquer les même options juste ci-dessus ("Credit Fund" et "Debit Fund"), j'aimerais savoir comment demander à $sql (situé dans le code process.php ci-dessus) de sélectionner chaque champs "Balance" de chacune des 2 tables "tbl_cardinfos" et "tbl_accounts" ???
Merci de mieux m'expliquer pas à pas s'il vous plaît.
Bonjour à tous.
J'ai de gros soucis.
D'abord je vous présente le code process.php et detail.php qui me fatiguent beaucoup car je n'arrive pas à corriger les erreurs les concernant:
******************* DEBUT CODE FICHIER process.php ********************
[code]<?php
function transaction()
{
$id = $_POST['user_id'];
$acc_no = $_POST['acc_no'];
$type = $_POST['type'];
$amt = str_number($_POST['amt']);
$cmt = $_POST['desc'];
$dot = $_POST['dot'];
$sql = "SELECT balance FROM tbl_accounts WHERE user_id = $id AND acc_no = $acc_no AND status = 'ACTIVE'";
$result = dbQuery($sql);
if (dbNumRows($result) == 1) {
extract(dbFetchAssoc($result));
if($type == "debit") {
//check if amt is more then $balance
if($balance < $amt) {
header('Location: index.php?msg=' . urlencode('Account balance is less, fail to transfer fund.'));
exit;
}
}
$total = $type == "credit" ? ($balance + $amt) : ($balance - $amt);
if($total <= 0) {
//return here...
}
$sql = "UPDATE tbl_accounts SET balance = $total WHERE user_id = $id AND acc_no = $acc_no";
dbQuery($sql);
}
?>[/code]
******************* FIN CODE FICHIER process.php ********************
1 - Sachant pour afficher $1 (montant de la variable $amt - 1 Dollar) au format "NumberFormatter::formatCurrency()" du code ISO 4217 dans la devise USD ($ Dollars americain), je dois normalement faire ceci:
<?php
$amt = new NumberFormatter('en_US', NumberFormatter::CURRENCY);
echo $amt->formatCurrency(1, 'USD');
?>
Alors, mon souhait est que la variable $amt du code process.php ci-dessus soit au format "NumberFormatter::formatCurrency()" et que le montant ($amt) soit envoyé à ce même format ce qui permettra au Champs balance des 2 tables "tbl_accounts" et "tbl_cardinfos" de s'afficher à ce format dans la base de données.
Comment donc réussir à modifier $amt au format "NumberFormatter::formatCurrency()" dans le code Process.php ci-dessus pour que ce format agisse sur les champs "balance" de chacune des 2 tables "tbl_accounts" et "tbl_cardinfos" ???
******************* DEBUT CODE FICHIER detail.php ********************
[code]
<?php
if (!defined('WEB_ROOT')) {
exit;
}
if (isset($_GET['accId']) && $_GET['accId'] > 0) {
$accId = $_GET['accId'];
} else {
header('Location: index.php');
}
$sql = "SELECT u.id, u.fname, u.lname, u.bdate, u.is_active, u.email, u.phone, u.pics,
a.acc_no, a.type, a.balance,
ad.address, ad.city, ad.state, ad.zipcode
FROM tbl_users u, tbl_accounts a, tbl_address ad
WHERE u.id = a.user_id AND ad.user_id = u.id
AND a.id = $accId";
$result = mysql_query($sql) or die('Cannot get product. ' . mysql_error());
$row = mysql_fetch_assoc($result);
extract($row);
$atype = "";
if($type == "CA"){$atype = "Checking Account";}
else if($type == "SA") {$atype = "Saving Account";}
else if($type == "FDA") {$atype = "Fixed deposit Account";}
?>
<p align="center" id="mainHead">User Details</p>
<form action="process.php?action=transaction" method="post" id="frmTransaction">
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable">
<tr>
<td width="150" class="label">Transaction Type</td>
<td colspan="2" class="content">
<select name="type" id="type">
<option value="#"> -- select transaction type --</option>
<option value="credit">Credit Fund</option>
<option value="debit">Debit Fund</option>
</select>
</td>
</tr>
<tr>
<td width="150" class="label">Amount</td>
<td colspan="2" class="content"><input type="text" name="amt" id="amt" size="10" /> </td>
</tr>
</table>
<p align="center">
<input name="btnBack" type="button" id="btnBack" value=" Back " onClick="window.history.back();" >
<input name="btnTxType" type="button" id="btnTxType" value=" Proceed Transaction ">
</p>
</form>
[/code]
******************* FIN CODE FICHIER detail.php ********************
2 - Quand on sélectionne l'option "Debit Fund" sur la page detail.php juste ci-dessus, le montant ($amt) à débiter ne débite pas du tout et en faite il n'y a aucune action sur la balance de l'utilisateur concerné lorsqu'on écrit un montant dans le Formulaire "amount" correspondant à la variable $amt et que l'on clique par la suite sur le bouton "Proceed Transaction", ça ne diminue pas le montant à débiter alors que l'option "Credit Fund" qui permet d'ajouter des fonds sur la balance de l'utilisateur sélectionné marche très bien.
Comment corriger cet erreur là à partir du code Process.php qui est la page d'action du formulaire de detail.php pour enfin réussir à bien faire fonctionner l'option "Debit Fund" pour qu'elle fonctionne très bien comme l'autre "Credit Fund" qui fonctionne déjà très bien ???
3 - Sur le code Process.php ci-dessus, on remarque la variable $sql qui sélectionne le champs "balance" correspondant à $balance dans la table "tbl_accounts" seulement.
Alors comme je viens de créer une nouvelle table "tbl_cardinfos" qui a également le même champs "Balance" que la table "tbl_accounts" et auquel je souhaiterais appliquer les même options juste ci-dessus ("Credit Fund" et "Debit Fund"), j'aimerais savoir comment demander à $sql (situé dans le code process.php ci-dessus) de sélectionner chaque champs "Balance" de chacune des 2 tables "tbl_cardinfos" et "tbl_accounts" ???
Merci de mieux m'expliquer pas à pas s'il vous plaît.