[RESOLU] table sous forme de variable qui me met en erreur

Eléphant du PHP | 63 Messages

30 sept. 2016, 09:35

bonjour bonjour :)
la table actuel est detail.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 sept. 2016, 10:39

ah j'ai pas été clair :-)
c'est la structures de la table (create table) qui m’intéresse ;)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 63 Messages

30 sept. 2016, 10:55

CREATE TABLE IF NOT EXISTS `detail` (
`id` int(11) NOT NULL,
`jour` text NOT NULL,
`mois` text NOT NULL,
`annee` text NOT NULL,
`dateOperation` date NOT NULL,
`typeOperation` enum('d','c') NOT NULL,
`description` text NOT NULL,
`fixe` enum('0','1') NOT NULL,
`t` decimal(10,2) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 sept. 2016, 11:26

donc,
avec ta table et les données suivantes
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (1, '', '', '', '2016-09-30', 'd', 'gfgf', '0', 42.00);
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (2, '', '', '', '2016-09-30', 'd', 'trtrtr', '0', 1337.00);
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (3, '', '', '', '2016-09-30', 'c', 'rtyhtyt', '0', 2000.00);
je récupère les recettes et dépence du mois avec cette requête
SELECT  SUM(t) AS TOTAL, typeOperation FROM detail  WHERE month(dateOperation) = 9 group by typeOperation;
résultat

Code : Tout sélectionner

TOTAL | typeOperation 1379.00 | d 2000.00 | c
du coup, delta sur le mois 2000-1379 = 621.

tu veux tout en une requête (gourmand)
select 
(SELECT  SUM(t)  FROM detail  WHERE month(dateOperation) = 9 and typeOperation = 'c') -
(SELECT  SUM(t) FROM detail  WHERE month(dateOperation) = 9 and typeOperation = 'd')
as delta
delta = 621.00

L'avantage de la première requête c'est que tu peux afficher la somme des recettes et crédits et le delta au besoin.

Pour le solde réel il faut faire sauter la clause sur le mois pour prendre en compte toutes les opérations.


au passage, les colonnes jour, mois, année sont inutiles (y a la date et on l'info simplement avec les mots clef sql comme month, year etc).


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 63 Messages

30 sept. 2016, 14:35

yes merci :)
je ne savais pas que pouvait des calculs en sql. si tu as un bon site qui peux m'en apprendre d'avantage je suis preneur. :)
j'ai bien comparer les deux requêtes avec phpmyadmin ça fonctionne bien en effet.
en revanche je pas bien comment récupérer tout ça avec PDO.

Eléphant du PHP | 63 Messages

30 sept. 2016, 15:04

les colonnes jour, mois et année c'est pour si je dois enregistré une transac à une date antérieur par exemple car dans le champ dateOperation il s'enregistre à la date du jour genre CUREDATE() non? sauf si tu connais un autre moyen je suis preneur ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 sept. 2016, 15:13

pour le sql sqlpro.developpez.com

pour la date deux champs dates, la date d'enregistrement / mise à jour d'un champs fait partie des données d'audit d'une table.
en générale
date création
utilisateur creation
date dernière mise à jour
utilisateur dernière mise à jour

comme ça tu as rapidement une idée de qui créé et qui modifie.

Dans ton cas tu rsique d'être seul du coup juste la date de saisie (un peu comme un virement date de demande et date de valeur où il sera effectué ;) )

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 63 Messages

30 sept. 2016, 15:20

ok merci pour l'info.
j'ai bien comparer les deux requêtes avec phpmyadmin ça fonctionne bien en effet.
en revanche je pas bien comment récupérer tout ça avec PDO.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 sept. 2016, 15:38

dasn le premier cas tu as les colonnes TOTAL et typeOperation

dans le second la colonne delta
c'est ce que tu récupère quand tu "fetch"

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 63 Messages

02 oct. 2016, 20:51

merci l'ami pour toute ces aides
ça fonctionne impec.