lymphis
Messages postés21Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention26 août 2009
-
28 août 2008 à 22:35
jreaux62
Messages postés195Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention24 octobre 2011
-
30 août 2008 à 00:31
le soucis c'est que ma base de donnée et comme ci dessous (ceci est mon fichier d'installation)
mysql_query(" CREATE TABLE `$base`.`Transaction` (
`id` INT NOT NULL AUTO_INCREMENT ,
`type` VARCHAR( 255 ) NOT NULL ,
`date` VARCHAR( 255 ) NOT NULL ,
`mode` VARCHAR( 255 ) NOT NULL ,
`debit` VARCHAR( 255 ) NOT NULL ,
`credit` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB ");
et donc je souhaiterai savoir si il exister un script PHP qui permettrai de faire debit - crédit et de l'afficher via une commande echo
merci beaucoup de votre aide je suis débutant et c'est dur
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 29 août 2008 à 10:01
Salut,
Tu peux faire une simple requête SQL :
SELECT (sum(credit) - sum(debit)) as diff FROM Transaction;
C'est plus performant de laisser MySQL faire le calcul, que de récupérer tous les enregistrements et de faire la différence.
Avec mysql_fetch_**** tu récupères une ligne (il n'y en aura qu'une), qui ne contient qu'une seule colonne (qui s'appelle diff, mais tu peux l'appeler autrement dans la requête, ça n'a aucune importance : tu peux même ne pas lui donner de nom).
Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
lymphis
Messages postés21Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention26 août 2009 29 août 2008 à 12:28
voici mon script actuelle
<?php
mysql_connect($mysql, $identifiant, $mdp)or die("Impossible de se connecter au serveur Mysql");
mysql_select_db($base) or die("Impossible de se connecter à la base de donnée");
$solde = mysql_query("SELECT (sum(credit) - sum(debit)) as diff FROM Transaction");
echo "Votre solde actuel et de $solde";
$reponse = mysql_query("SELECT * FROM Transaction");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<?php echo $donnees['type']; ?>
<?php echo $donnees['date']; ?>
<?php echo $donnees['mode']; ?>
- <?php echo $donnees['debit']; ?>€
+ <?php echo $donnees['credit']; ?>€
<?php
}
mysql_close();
?>
sa me met "Votre solde actuel et de Resource id #3"
merci de votre aide (et si on peu editer dite moi comment je ne sais pas du tout donc désoler)
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 29 août 2008 à 12:45
$solde = mysql_query("SELECT (sum(credit) - sum(debit)) as diff FROM Transaction");
echo "Votre solde actuel et de $solde";
Euh... un petit tour sur la doc de PHP pour bien comprendre comment fonctionne fonctionnent les fonction mysql_*
mysql_query() retourne une resource de type 'mysql result'
Un résultat mysql peut être lu avec une des fonction mysql_fetch_* et mysql_result()
$result = mysql_query('SELECT (SUM(credit) - SUM(debit)) AS solde FROM Transaction');
$solde = mysql_result($result, 0, 'solde');
echo 'Votre solde est de : ' . $solde;
Sinon, évite de parcourir tous les enregistrements, parce que si tu en as 3000 dans ta table, ça va être très lourd, questions performances. Pense à afficher sur plusieurs pages.
Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Vous n’avez pas trouvé la réponse que vous recherchez ?
lymphis
Messages postés21Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention26 août 2009 29 août 2008 à 19:17
merci beaucoup jreaux62
je penser à les changer mais avant je doi faire un script php pour verifier que les champ des montant sont bien rempli avec un nombre entier ou decimal (sa je sais le fait avec mon livre)
merci bien ;)
en tout cas via ton lien sa explique pas très bien je pense chercher un tuto qui explique mieu car la c'est trop vaste
lymphis
Messages postés21Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention26 août 2009 29 août 2008 à 20:58
non à la base je veux que sa le fasse pour toute mes transaction (que j'en ai 10 ou 60) par exemple en mettant ma paye et toute mes dépense j'ai un solde qui m'indique combien il me reste
jreaux62
Messages postés195Date d'inscriptionvendredi 13 juin 2008StatutMembreDernière intervention24 octobre 201132 29 août 2008 à 20:58
PARDON!
Après re-lecture de ta question, j'ai un gros doute !
Comment relies-tu la transaction au client ??
- as-tu une autre table "Client" ?
avec un champ `idclient` INT NOT NULL AUTO_INCREMENT ?
Auquel cas, il faudrait rajouté dans la table "Transaction" un champ :
`idclient` INT NOT NULL
Et le solde total (avec $idclient l'id du client) est obtenu avec :
$solde mysql_query('SELECT (SUM(credit)-SUM(debit)) as solde FROM Transaction WHERE idclient'. $idclient);
echo 'Votre solde actuel est de '. $solde;
lymphis
Messages postés21Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention26 août 2009 29 août 2008 à 21:07
oui à la base c'est un programme que je vais distribuer en Open GL (si c'est bien sa le nom) que chacun installera sur son FTP (ou en local) pour faire ses comptes, mais pourquoi pas un portail communautaire pour faire ses comptes mdr
lymphis
Messages postés21Date d'inscriptionmercredi 5 mars 2008StatutMembreDernière intervention26 août 2009 29 août 2008 à 21:15
ha oui pas mal, mais bon pour le moment je sais faire des formulaire d'enregistrement mais pas de connection donc sa c'est pour plus tard (hé oui je suis nul en php ^^)