AAAAAAALSO!
und zwar bräucht ich bissl hilfe bei der gestaltung einer auswertung von daten aus einer mysql datenbank. es geht um folgende tabelle namens "belege":
spalten belegid - authorid - abfallsnummer - kostenstellenid - entsorgerid - preis - menge - belegdatum
alles int, bis auf preis/menge sind float, belegdatum natürlich date. alles verweist dann auf andere tabellen in denen die bezeichnungen (und gruppen, blabla.. eig uninteressant für das problem) hinterlegt sind.
ich habe eine auswertung die so aussieht, dass sie alle abfallbezeichnungen (aus abfallsnummer) und dann kostenstellen gruppiert und daraus die summen des preises und der menge aus den belegen ausgibt, ungefähr so:
der code dafür aus dem controller:
if (isset($_GET['action']) and $_GET['action'] == 'search')
{
include $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
// grundlegendes SELECT query
$select = 'SELECT abfallbezeichnung, kostenstellenbezeichnung, SUM(menge), SUM(preis)';
$from = ' FROM belege
INNER JOIN abfallart ON abfallart.snummer = belege.abfallsnummer
INNER JOIN kostenstellen ON kostenstellen.kostenstellenid = belege.kostenstellenid';
$where = ' WHERE TRUE';
$groupby = ' GROUP BY abfallbezeichnung, belege.kostenstellenid';
$orderby = ' ORDER BY abfallbezeichnung';
// SQL Query wird gebaut
$result = mysqli_query($link, $select . $from . $where . $groupby . $orderby);
if (!$result)
{
$error = 'fehler beim laden der belege.';
include 'error.html.php';
exit();
}
while ($row = mysqli_fetch_array($result))
{
$mengen[] = array('abfallbezeichnung' => $row['abfallbezeichnung'], 'kostenstellenbezeichnung' => $row['kostenstellenbezeichnung'], 'summenge' => $row['SUM(menge)'], 'sumpreis' => $row['SUM(preis)']);
}
include 'auswertung.html.php';
exit();
}
Alles anzeigen
und der html code:
<head>
<title>Mengen- und Kostenaufstellung nach Abfallart pro Kostenstelle</title>
</head>
<body>
<h1>Auflistung</h1>
<?php if (isset($mengen)): ?>
<table border="1">
<tr><th>Abfallbezeichnung</th><th>Kostenstelle</th><th>Mengensumme</th><th>Kostensumme</th></tr>
<?php foreach ($mengen as $menge): ?>
<tr valign="top">
<div>
<form action="?" method="post">
<td><?php htmlout($menge['abfallbezeichnung']); ?></td>
<td><?php htmlout($menge['kostenstellenbezeichnung']); ?></td>
<td><?php htmlout($menge['summenge']); ?></td>
<td><?php htmlout($menge['sumpreis']); ?></td>
</form>
</div>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
<p><a href="?">Neue Suche</a></p>
<p><a href=".">Start</a></p>
</body>
Alles anzeigen
ich hätt jetz gern, dass das ganze so aussieht:
Abfallbezeichnung1
kostenstelle1 ||| mengensumme ||| kostensumme
kostenstelle2 ||| mengensumme ||| kostensumme
Abfallbezeichnung2
kostenstelle1 ||| mengensumme ||| kostensumme
kostenstelle2 ||| mengensumme ||| kostensumme
usw. (mengen- und kostensumme natürlich von den jeweiligen kostenstellen in bezug auf die abfallbezeichnung)
hat irgendwer einen lösungsansatz oder ähnliches? ich hab mir schon dacht, dass ich die abfallid in ein eigenes array pack, und dann per foreach für jede abfallbezeichnung eine eigene auswertung machen lass, aber dann brauch ich 34523543 variablen und müsste die in der auswertung manuell eintragen, das is auch bullshit.. sollte halt dann variabel sein, ich will dann halt auch (wie man vl im controller schon sehen kann) diverse SQL statements über eine form dazuwerfen... das ganze is natürlich nur ein entwurf, design etc. is eigentlich vollkommen egal, css hab ich noch nix gemacht - geht mir wirklich nur darum, wie ich zu den einzelnen abfällen eigene tabellen erstellen könnt...
go affen!