Datensätze addieren |
|
Hallo zusammen,
hab gerade mal wieder ein Denkproblem.
Ich habe mir eine DB erstellt wo ich folgende Daten eingebe.
Datum, Beleg-Nr., Konto-Nr. Einnahmen, Ausgaben.
Bis jetzt kein Problem.
Nun sollte bei der Datenbank Ausgabe die einzelen Buchungsdaten ausgeworfen werden und am Schluss eine GEsamtsumme gebildet werden von der einzelen Konto-Nr.
Danach Ausgabe der nächsten Konto-Nr. mit den einzelnen Buchungen und danach wieder die Summenbildung.
Wie kann ich das Realisieren?
Die Ausgabe ist klar: Muss ich hier ein Zäheler einbauen?
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
error_reporting(E_ALL);
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen kto_nr ORDER BY beleg_nr DESC";
$res = mysql_query($db_buchungen);
echo mysql_error();
// Tabellenbeginn
while($row = mysql_fetch_array($res))
{
.... Ausgabe
}
|
|
Das ganze sollte allerdings so aussehen.
Konto 4711 Einnhamen Ausgaben
Datensatz 1
Datensatz 2
Datensatz 3
Summe Konto-Nr
nächstes Konto 4712
usw.
Danke schon mal
|
|
03.01.2018 14:03 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Ja, das ist richtig.
Aber wie? Die Konto-Nr wird doch automatisch ausgelesen.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
|
error_reporting(E_ALL);
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen kto_nr ORDER BY beleg_nr DESC";
$res = mysql_query($db_buchungen);
echo mysql_error();
// Tabellenbeginn
while($row = mysql_fetch_array($res))
{
$kto = $row[*konto_nr'];
}
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kto ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Tabellenbeginn
while($row= mysql_fetch_array($res))
{
.... Summe
}
|
|
Geht so nicht. Muss ich die Klammern anders setzen oder muss ich mit _GET['$id'] arbeiten?
|
|
04.01.2018 10:20 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.769.943
Nächster Level: 266.777.854
|
|
Hallo,
ich würde es so machen.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
|
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen kto_nr ORDER BY beleg_nr DESC";
$res = mysql_query($db_buchungen);
echo mysql_error();
$kontonr = 0:
// Tabellenbeginn
while($row = mysql_fetch_array($res)) {
if($kontonr == 0) $kontonr = $row['konto_nr'];
if($kontonr != $row['konto_nr']) {
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
Summe ausgeben
}
$kontonr = $row['konto_nr'];
}
Daten ausgeben
}
// Die Summe der letztzen Belege ausgeben
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
Summe ausgeben
}
|
|
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
04.01.2018 15:08 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Hallo
viele Dank schon mal für Dein Script. Aber Irgendwie passt hier was nicht.
Hier mal mein ganzes script. Es ist als Ausgabe in fpdf gedacht.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
|
error_reporting(E_ALL);
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen ORDER BY kto_nr ASC";
$res = mysql_query($db_buchungen);
echo mysql_error();
// Tabellenbeginn
$kontonr = 0;
while($row= mysql_fetch_array($res))
{
if($kontonr == 0) $kontonr = $row['kto_nr'];
if($kontonr != $row['kto_nr']) {
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
$kto = $row["kto_nr"];
$beleg = $row["beleg_nr"];
$kb = $row["kbeschreibung"];
$ktext = $row["btext"];
$bein = $row["einnahmen"];
$baus = $row["ausgaben"];
$dat = $row["datum1"];
// Euro Zeichen verbinden
$euro = '€';
$bsummeein1=array($bein, ' ', $euro);
$bsummeein2 = implode($bsummeein1);
$bsummeaus1=array($baus, ' ', $euro);
$bsummeaus2 = implode($bsummeaus1);
// Ausgabe in Formular
$pdf->SetFillColor(255);
$pdf->Rect(11, 34, 181, 6, '');
$pdf->Text(12,38, 'Datum','0',0,'L',0);
$pdf->Text(35,38, 'Beleg-Nr.','0',0,'C',0);
$pdf->Text(61,38, 'Buchungstext','0',0,'L',0);
$pdf->Text(148,38, 'Einnahmen','0',0,'L',0);
$pdf->Text(172,38, 'Ausgaben','0',0,'L',0);
$pdf->Cell(20,48, $dat,'0',0,'L',0);
$pdf->Cell(15,48, $beleg,'0',0,'R',0);
$pdf->Cell(15,48, '','0',0,'R',0);
$pdf->Cell(30,48, $ktext,'0',0,'L',0);
$pdf->Cell(53,48, '','0',0,'R',0);
$pdf->Cell(25,48, $bsummeein2,'0',0,'R',0);
$pdf->Cell(2,48, '','0',0,'R',0);
$pdf->Cell(20,48, $bsummeaus2,'0',0,'R',0);
$pdf->Ln(5);
}
$kontonr = $row['kto_nr'];
}
// Farbe auf Weiss setzen
$pdf->SetFont('Arial','',11);
$pdf->SetFillColor(217,220,222);
$pdf->Rect(11, 26, 30, 5, 'F');
$pdf->Text(12,30, 'Buchungskonto:');
$pdf->Rect(42, 26, 13, 5, 'F');
$pdf->Text(44,30, $kontonr);
$$df->Rect(56, 26, 48, 5, 'F');
$pdf->Text(57,30, $kb);
$pdf->Rect(105, 26, 86, 5, 'F');
$pdf->Text(106,30, 'Kontenblatt' );
$pdf->SetFont('Arial','',10);
$pdf->Text(170,30, '[ ELKA ]');
$gesamt = "Select b_id, kto_nr, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
$gesamtein = $row['Ein'];
$gesamtaus = $row['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
$pdf->Ln(4);
}
}
|
|
Es fehlen die Datensätze. Den output habe ich Dir als Datei angehängt.
Dateianhang: |
Ausgabe.jpg (42 KB, 129 mal heruntergeladen)
|
|
|
04.01.2018 16:08 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Also die Ausgabe habe ich hinbekommen. Allerdings bringt er mir nur 1 Datensatz von der Kto_nr. obwohl es zwei sind.
Und wie gesagt dann geht es nicht weiter.
|
|
04.01.2018 16:37 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.769.943
Nächster Level: 266.777.854
|
|
Hallo,
du hast vergessen die einzelnen Datensätze aus zu geben.
In dem Code habe ich geschrieben wo sie ausgegeben werden müssen.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
|
error_reporting(E_ALL);
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen ORDER BY kto_nr ASC";
$res = mysql_query($db_buchungen);
echo mysql_error();
// Tabellenbeginn
$kontonr = 0;
while($row= mysql_fetch_array($res)) {
if($kontonr == 0) $kontonr = $row['kto_nr'];
if($kontonr != $row['kto_nr']) {
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
$kto = $row["kto_nr"];
$beleg = $row["beleg_nr"];
$kb = $row["kbeschreibung"];
$ktext = $row["btext"];
$bein = $row["einnahmen"];
$baus = $row["ausgaben"];
$dat = $row["datum1"];
// Euro Zeichen verbinden
$euro = '€';
$bsummeein1=array($bein, ' ', $euro);
$bsummeein2 = implode($bsummeein1);
$bsummeaus1=array($baus, ' ', $euro);
$bsummeaus2 = implode($bsummeaus1);
// Ausgabe in Formular
$pdf->SetFillColor(255);
$pdf->Rect(11, 34, 181, 6, '');
$pdf->Text(12,38, 'Datum','0',0,'L',0);
$pdf->Text(35,38, 'Beleg-Nr.','0',0,'C',0);
$pdf->Text(61,38, 'Buchungstext','0',0,'L',0);
$pdf->Text(148,38, 'Einnahmen','0',0,'L',0);
$pdf->Text(172,38, 'Ausgaben','0',0,'L',0);
$pdf->Cell(20,48, $dat,'0',0,'L',0);
$pdf->Cell(15,48, $beleg,'0',0,'R',0);
$pdf->Cell(15,48, '','0',0,'R',0);
$pdf->Cell(30,48, $ktext,'0',0,'L',0);
$pdf->Cell(53,48, '','0',0,'R',0);
$pdf->Cell(25,48, $bsummeein2,'0',0,'R',0);
$pdf->Cell(2,48, '','0',0,'R',0);
$pdf->Cell(20,48, $bsummeaus2,'0',0,'R',0);
$pdf->Ln(5);
}
$kontonr = $row['kto_nr'];
}
Hier die einzelnen Datensätze ausgeben
}
// Farbe auf Weiss setzen
$pdf->SetFont('Arial','',11);
$pdf->SetFillColor(217,220,222);
$pdf->Rect(11, 26, 30, 5, 'F');
$pdf->Text(12,30, 'Buchungskonto:');
$pdf->Rect(42, 26, 13, 5, 'F');
$pdf->Text(44,30, $kontonr);
$$df->Rect(56, 26, 48, 5, 'F');
$pdf->Text(57,30, $kb);
$pdf->Rect(105, 26, 86, 5, 'F');
$pdf->Text(106,30, 'Kontenblatt' );
$pdf->SetFont('Arial','',10);
$pdf->Text(170,30, '[ ELKA ]');
$gesamt = "Select b_id, kto_nr, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
$gesamtein = $row['Ein'];
$gesamtaus = $row['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
$pdf->Ln(4);
}
|
|
Bei "Hier die einzelnen Datensätze ausgeben" musst du die Datensätze ausgeben.
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
04.01.2018 16:47 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.769.943
Nächster Level: 266.777.854
|
|
Hallo,
hier noch mal den kpl. Code.
Du hast da was verwechselt.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
|
error_reporting(E_ALL);
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen ORDER BY kto_nr ASC";
$res = mysql_query($db_buchungen);
echo mysql_error();
// Tabellenbeginn
$kontonr = 0;
// 1. Überschrift ausgeben
// Farbe auf Weiss setzen
$pdf->SetFont('Arial','',11);
$pdf->SetFillColor(217,220,222);
$pdf->Rect(11, 26, 30, 5, 'F');
$pdf->Text(12,30, 'Buchungskonto:');
$pdf->Rect(42, 26, 13, 5, 'F');
$pdf->Text(44,30, $kontonr);
$$df->Rect(56, 26, 48, 5, 'F');
$pdf->Text(57,30, $kb);
$pdf->Rect(105, 26, 86, 5, 'F');
$pdf->Text(106,30, 'Kontenblatt' );
$pdf->SetFont('Arial','',10);
$pdf->Text(170,30, '[ ELKA ]');
while($row= mysql_fetch_array($res)) {
if($kontonr == 0) $kontonr = $row['kto_nr'];
// Wenn sich Kontonummer ändert dann die Summe ausgeben
if($kontonr != $row['kto_nr']) {
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Summe ausgeben
while($row= mysql_fetch_array($res)) {
$gesamtein = $row['Ein'];
$gesamtaus = $row['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
$pdf->Ln(4);
}
$kontonr = $row['kto_nr'];
}
// Einzelne Datensätze ausgeben
$kto = $row["kto_nr"];
$beleg = $row["beleg_nr"];
$kb = $row["kbeschreibung"];
$ktext = $row["btext"];
$bein = $row["einnahmen"];
$baus = $row["ausgaben"];
$dat = $row["datum1"];
// Euro Zeichen verbinden
$euro = '€';
$bsummeein1=array($bein, ' ', $euro);
$bsummeein2 = implode($bsummeein1);
$bsummeaus1=array($baus, ' ', $euro);
$bsummeaus2 = implode($bsummeaus1);
// Ausgabe in Formular
$pdf->SetFillColor(255);
$pdf->Rect(11, 34, 181, 6, '');
$pdf->Text(12,38, 'Datum','0',0,'L',0);
$pdf->Text(35,38, 'Beleg-Nr.','0',0,'C',0);
$pdf->Text(61,38, 'Buchungstext','0',0,'L',0);
$pdf->Text(148,38, 'Einnahmen','0',0,'L',0);
$pdf->Text(172,38, 'Ausgaben','0',0,'L',0);
$pdf->Cell(20,48, $dat,'0',0,'L',0);
$pdf->Cell(15,48, $beleg,'0',0,'R',0);
$pdf->Cell(15,48, '','0',0,'R',0);
$pdf->Cell(30,48, $ktext,'0',0,'L',0);
$pdf->Cell(53,48, '','0',0,'R',0);
$pdf->Cell(25,48, $bsummeein2,'0',0,'R',0);
$pdf->Cell(2,48, '','0',0,'R',0);
$pdf->Cell(20,48, $bsummeaus2,'0',0,'R',0);
$pdf->Ln(5);
}
// Summe von den letzten Belegen ausgeben
$gesamt = "Select b_id, kto_nr, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = $kontonr ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
$gesamtein = $row['Ein'];
$gesamtaus = $row['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
$pdf->Ln(4);
}
|
|
Teste es mal so.
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
04.01.2018 16:59 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
So habe es einmal getestet.
Hier die Fehlermeldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY b_id ASC' at line 1
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\entwicklung\2016_mitgliederverwaltung\kassenbuch\drucken\ka
ssenbuch_komplett_drucken.php on line 829
FPDF error: Some data has already been output, can't send PDF file
Das ist im letzten Abschnitt. An Zeile 99
Wenn ich das rausnehme gibt es schon mal ein output
|
|
04.01.2018 21:13 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.769.943
Nächster Level: 266.777.854
|
|
Hallo,
hier noch mal ein neuer Code.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
|
error_reporting(E_ALL);
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen ORDER BY kto_nr ASC";
$res = mysql_query($db_buchungen);
echo mysql_error();
// Tabellenbeginn
$kontonr = 0;
// 1. Überschrift ausgeben
// Farbe auf Weiss setzen
$pdf->SetFont('Arial','',11);
$pdf->SetFillColor(217,220,222);
$pdf->Rect(11, 26, 30, 5, 'F');
$pdf->Text(12,30, 'Buchungskonto:');
$pdf->Rect(42, 26, 13, 5, 'F');
$pdf->Text(44,30, $kontonr);
$$df->Rect(56, 26, 48, 5, 'F');
$pdf->Text(57,30, $kb);
$pdf->Rect(105, 26, 86, 5, 'F');
$pdf->Text(106,30, 'Kontenblatt' );
$pdf->SetFont('Arial','',10);
$pdf->Text(170,30, '[ ELKA ]');
$pdf->Ln(2);
while($row= mysql_fetch_array($res)) {
if($kontonr == 0) $kontonr = $row['kto_nr'];
// Wenn sich Kontonummer ändert dann die Summe ausgeben
if($kontonr != $row['kto_nr']) {
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = '".$kontonr."' ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Summe ausgeben
while($row= mysql_fetch_array($res)) {
$gesamtein = $row['Ein'];
$gesamtaus = $row['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
$pdf->Ln(4);
}
$kontonr = $row['kto_nr'];
}
// Einzelne Datensätze ausgeben
$kto = $row["kto_nr"];
$beleg = $row["beleg_nr"];
$kb = $row["kbeschreibung"];
$ktext = $row["btext"];
$bein = $row["einnahmen"];
$baus = $row["ausgaben"];
$dat = $row["datum1"];
// Euro Zeichen verbinden
$euro = '€';
$bsummeein1=array($bein, ' ', $euro);
$bsummeein2 = implode($bsummeein1);
$bsummeaus1=array($baus, ' ', $euro);
$bsummeaus2 = implode($bsummeaus1);
// Ausgabe in Formular
$pdf->SetFillColor(255);
$pdf->Rect(11, 34, 181, 6, '');
$pdf->Text(12,38, 'Datum','0',0,'L',0);
$pdf->Text(35,38, 'Beleg-Nr.','0',0,'C',0);
$pdf->Text(61,38, 'Buchungstext','0',0,'L',0);
$pdf->Text(148,38, 'Einnahmen','0',0,'L',0);
$pdf->Text(172,38, 'Ausgaben','0',0,'L',0);
$pdf->Cell(20,48, $dat,'0',0,'L',0);
$pdf->Cell(15,48, $beleg,'0',0,'R',0);
$pdf->Cell(15,48, '','0',0,'R',0);
$pdf->Cell(30,48, $ktext,'0',0,'L',0);
$pdf->Cell(53,48, '','0',0,'R',0);
$pdf->Cell(25,48, $bsummeein2,'0',0,'R',0);
$pdf->Cell(2,48, '','0',0,'R',0);
$pdf->Cell(20,48, $bsummeaus2,'0',0,'R',0);
$pdf->Ln(2);
}
// Summe von den letzten Belegen ausgeben
$gesamt = "Select b_id, kto_nr, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = '".$kontonr."' ORDER BY b_id ASC";
$res = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row= mysql_fetch_array($res)) {
$gesamtein = $row['Ein'];
$gesamtaus = $row['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
$pdf->Ln(4);
}
|
|
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
04.01.2018 21:53 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Das sieht schon mal ganz gut aus.
Jetzt haut er mir zwar die Datensätze alle übereinander. Aber das muss ich sehen wie ich das hinbekomme.
Vielen Dank. Wenn es nicht geht melde ich mich noch einmal!
|
|
04.01.2018 22:12 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Hallo Viktor,
es kommt nur die erste KontoNr. raus dann geht nix mehr.
|
|
04.01.2018 22:30 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.769.943
Nächster Level: 266.777.854
|
|
|
04.01.2018 23:43 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Ich habe Dir mal den neusten pdf Audruck angehängt. Darunter wie es aussehen soll.
Für jedes Konto soll dann eine eigene Seite generiert werden. Das ist aber nicht das Problem. Das bekomme ich hin.
Der header muss also ständig bei einer neuen Seite übernommen werden.
Mir is Dein Script nicht ganz klar. Warum gibst Du zuerst die Summe an und danach die Datensätze.
Gruß
Michael
Dateianhang: |
Ausgabe2.jpg (78,12 KB, 93 mal heruntergeladen)
|
|
|
05.01.2018 13:32 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Ich habe das ganze mal in ein html Dokument eingebaut.
Die Ausgabe bezieht sich nur über eine Kontonummer.
Daher die Schleife muss doch irgendwie weiterlaufen zur nächsten KontoNr.
Muss nicht kontonr ++; irgendwo eingebaut werden?
|
|
05.01.2018 14:27 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.769.943
Nächster Level: 266.777.854
|
|
Hallo,
jo ich glaube ich habe den Fehler gefunden.
Ein Problem sehe ich noch. Was ist wenn es 50 Buchungszeilen gibt und die nicht mehr auf einer Seite passen.
Du musst da noch mehr einbauen.
Hier mal der neue Code zum Testen.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
|
error_reporting(E_ALL);
$kontonr = 0;
$vgcount = 0;
$zeile = 0;
$db_buchungen = "SELECT kto_id, kto_nr, DATE_FORMAT(datum, '%d.%m.%Y') AS datum1, beleg_nr, kbeschreibung, btext, einnahmen, ausgaben FROM db_buchen ORDER BY kto_nr ASC";
$res = mysql_query($db_buchungen);
echo mysql_error();
while($row= mysql_fetch_array($res)) {
if($kontonr == 0) {
$kontonr = $row['kto_nr'];
// Farbe auf Weiss setzen
$pdf->SetFont('Arial','',11);
$pdf->SetFillColor(217,220,222);
$pdf->Rect(11, 26, 30, 5, 'F');
$pdf->Text(12,30, 'Buchungskonto:');
$pdf->Rect(42, 26, 13, 5, 'F');
$pdf->Text(44,30, $kontonr);
$$df->Rect(56, 26, 48, 5, 'F');
$pdf->Text(57,30, 'Beiträge');
$pdf->Ln(3);
$pdf->SetFillColor(255);
$pdf->Rect(11, 34, 181, 6, '');
$pdf->Text(12,38, 'Datum','0',0,'L',0);
$pdf->Text(35,38, 'Beleg-Nr.','0',0,'C',0);
$pdf->Text(61,38, 'Buchungstext','0',0,'L',0);
$pdf->Text(148,38, 'Einnahmen','0',0,'L',0);
$pdf->Text(172,38, 'Ausgaben','0',0,'L',0);
$vgcount = 0;
$zeile = 42;
}
// Wenn sich Kontonummer ändert dann die Summe ausgeben
if($kontonr != $row['kto_nr']) {
$gesamt = "Select b_id, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = '".$kontonr."' ORDER BY b_id ASC";
$res2 = mysql_query($gesamt);
echo mysql_error();
// Summe ausgeben
while($row2 = mysql_fetch_array($res2)) {
$gesamtein = $row2['Ein'];
$gesamtaus = $row2['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
}
$kontonr = $row['kto_nr'];
// Farbe auf Weiss setzen
$pdf->AddPage();
$pdf->SetFont('Arial','',11);
$pdf->SetFillColor(217,220,222);
$pdf->Rect(11, 26, 30, 5, 'F');
$pdf->Text(12,30, 'Buchungskonto:');
$pdf->Rect(42, 26, 13, 5, 'F');
$pdf->Text(44,30, $kontonr);
$$df->Rect(56, 26, 48, 5, 'F');
$pdf->Text(57,30, 'Beiträge');
$pdf->Ln(3);
$pdf->SetFillColor(255);
$pdf->Rect(11, 34, 181, 6, '');
$pdf->Text(12,38, 'Datum','0',0,'L',0);
$pdf->Text(35,38, 'Beleg-Nr.','0',0,'C',0);
$pdf->Text(61,38, 'Buchungstext','0',0,'L',0);
$pdf->Text(148,38, 'Einnahmen','0',0,'L',0);
$pdf->Text(172,38, 'Ausgaben','0',0,'L',0);
$vgcount = 0;
$zeile = 42;
}
// Einzelne Datensätze ausgeben
$kto = $row["kto_nr"];
$beleg = $row["beleg_nr"];
$kb = $row["kbeschreibung"];
$ktext = $row["btext"];
$bein = $row["einnahmen"];
$baus = $row["ausgaben"];
$dat = $row["datum1"];
// Euro Zeichen verbinden
$euro = '€';
$bsummeein1=array($bein, ' ', $euro);
$bsummeein2 = implode($bsummeein1);
$bsummeaus1=array($baus, ' ', $euro);
$bsummeaus2 = implode($bsummeaus1);
// Ausgabe in Formular
$pdf->Cell(20,$zeile, $dat,'0',0,'L',0);
$pdf->Cell(15,$zeile, $beleg,'0',0,'R',0);
$pdf->Cell(15,$zeile, '','0',0,'R',0);
$pdf->Cell(30,$zeile, $ktext,'0',0,'L',0);
$pdf->Cell(53,$zeile, '','0',0,'R',0);
$pdf->Cell(25,$zeile, $bsummeein2,'0',0,'R',0);
$pdf->Cell(2,$zeile, '','0',0,'R',0);
$pdf->Cell(20,$zeile, $bsummeaus2,'0',0,'R',0);
$vgcount++;
$zeile = $zeile + 3;
}
// Summe von den letzten Belegen ausgeben
if($vgcount != 0) {
$gesamt = "Select b_id, kto_nr, SUM(einnahmen) AS Ein, SUM(ausgaben) AS Aus from db_buchen WHERE kto_nr = '".$kontonr."' ORDER BY b_id ASC";
$res2 = mysql_query($gesamt);
echo mysql_error();
// Gesamt ausgeben
while($row2 = mysql_fetch_array($res2)) {
$gesamtein = $row2['Ein'];
$gesamtaus = $row2['Aus'];
// Euro Zeichen verbinden
$euro = '€';
$gesamtein1=array($gesamtein, ' ', $euro);
$gesamtein2 = implode($gesamtein1);
$gesamtaus1=array($gesamtaus, ' ', $euro);
$gesamtaus2 = implode($gesamtaus1);
$pdf->SetFillColor(217,220,222);
$pdf->Ln(10);
$pdf->SetFont('Arial','',10);
$pdf->Cell(50,25, $last_line);
$pdf->Ln(3);
$pdf->setX(90);
$pdf->SetFont('Arial','B',11);
$pdf->Cell(48,30, 'Buchungssumme Gesamt:');
$pdf->Cell(30,30, $gesamtein2,'0',0,'R',0);
$pdf->Cell(22,30, $gesamtaus2,'0',0,'R',0);
$pdf->Ln(4);
}
} |
|
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
05.01.2018 21:42 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Hallo Viktor,
das sieht sehr gut aus. Den Rest bekomme ich hin.
Vielen Dank für Deine Hilfe!
Gruß
Michael
|
|
06.01.2018 11:45 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Jetzt habe ich doch noch eine Frage.
Wo muss ich ein Cell einfügen damit ich beim letzten Datensatz einen Strich ziehen kann der immer mit nach unten wandert!
Gruß
Michael
|
|
06.01.2018 15:48 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.855
Nächster Level: 2.530.022
Themenstarter
|
|
Hallo Viktor,
das ganze habe ich eingebaut. Habe jetzt schon den ganzen Nachmittag versucht selbst auf die Reihe zu bringen. Aber ich glaube soweit reichen meine Kentnisse dann doch nicht.
Das Ganze Konzept soll für meinen Verein ein Kassenbuch sein das wir nach uneren Bedürfnissen anpassen können. Soweit ist alles Perfekt nur der Ausdruck fehlt.
Wie das ganze aussieht habe ich mal angehängt. Die Summe und Linien bleiben nach wie vor stehen und der Übertrag auf eine neie Seite stimmt auch nicht. Da kommt zerst die Summe und dann weitere Buchungssätze. Ausserdem ist der Abstand von oben zu groß.
Es würde mich freuen wenn Du mir hier noch einmal weiterhelfen könntest.
Grüße aus BW nach NRW
Michael
|
|
07.01.2018 15:10 |
|
|
|