MySQL with rollup PHP Ausgabe

Zero2000

Erfahrenes Mitglied
Hallo,

ich versuche krampfhaft mit PHP eine MySQL-Abfrage welche WITH ROLLUP beinhaltet darzustellen.
Leider gelingt mir das nicht im geringsten. Auf der Suche nach einem möglichen Lösungsansatz wurde teilweise darauf verwiesen diese nicht mit Rollup zu machen sondern allein in PHP.

Ich bin total verwirrt und mein Kopf langsam leer. Nachfolgend mal mein bisheriger Code:
PHP:
<?php
$result = mysql_query("
SELECT te.id_lagerort, te.id_hersteller, SUM(anzahl) AS anzahl, lo.id AS lagerortid, lo.lagerort, he.id AS herstellerid, he.hersteller
FROM tl_textilien AS te
LEFT JOIN tl_lagerorte AS lo ON te.id_lagerort = lo.id
LEFT JOIN tl_hersteller AS he ON te.id_hersteller = he.id
GROUP BY te.id_lagerort, te.id_hersteller
WITH ROLLUP
")or die (mysql_error());
//ORDER BY he.hersteller ASC
while($sumtotal = mysql_fetch_array($result))
{
     $sum_artikel += $sumtotal['anzahl'];
}
echo '<h1 class="welcome">Textillager</h1>';
echo '<span class="subh1">Es befinden sich insgesamt <span class="redtxt">'.$sum_artikel.'</span> Textilien in allen Lagern</span>';
echo '<hr class="hr-solidblue">';
echo '<p>';

mysql_data_seek($result, 0);
while($zeile = mysql_fetch_array($result))
     $anzeige[$zeile['lagerort']][] = array($zeile['hersteller'], $zeile['anzahl'], $zeile['id_hersteller'], $zeile['id_lagerort']);

     //var_dump($anzeige);
     foreach($anzeige as $key => $val){
          echo '<div id="start">';
          echo '<div id="start-oben">';
          echo '<strong>'.$key. '</strong> <span class="txtsmall">('.$hesumtotal.')</span>';
          echo '</div>';
          echo '<div id="start-unten">';
               foreach($val as $subval){
                    echo "<a href='index.php?action=anzeige&heid=".$subval[2]."&loid=".$subval[3]."' title='".$subval[0]."'>".$subval[0]." <span class='txtsmall'>(".$subval[1].")</span></a><br>";
                    }
          echo '</div>';
          echo '</div>';
     }
?>
</p>
Vielleicht gibt es hier jemanden der das ganze schonmal so realisiert hat, oder sollte ich es ganz mit PHP machen?

Liebe grüße
Maik

[EDIT]
Vielleicht hilft es ja, hatte im DB-Forum schonmal was gepostet dazu.
https://www.tutorials.de/threads/mysql-subselect-oder-sum-mit-distinct.399900/#post-2065280
[/EDIT]
 
Zuletzt bearbeitet:
Bitte formatiere deinen Code. Sowas lese ich nicht, da ich nicht gerne Klammern zähle um herauszufinden welche Schleife wo endet.

Und was ist deine Konkrete Frage? Kommt eine Fehlermeldung? Werdend ie Daten falsch Berechnet?
Kriegst du die Ausgabe nicht richtig formatiert hin? Wenn ja, wie sollte es dann aussehen?
 
PHP:
while($sumtotal = mysql_fetch_array($result))
{
   $sum_artikel += $sumtotal['anzahl'];
}

Ich mache das "per Hand".

HTML:
<nav>
   <div>
      <p>BlaBlaBla</p>
   </div>
</nav>

Statt...

HTML:
<nav>
<div>
<p>BlaBlaBla</p>
</div>
</nav>

oder...

HTML:
<nav><div><p>BlaBlaBla</p></div></nav>

Hat man echt kein Bock sich anzuschauen.
 
hoffe nun kann man es besser lesen.
Ich bekomme die Ausgabe nicht hin. Ich schaffe es nicht die Summenfelder aus der MySQL-Tabelle auszulesen.
Vergleiche mit is_null scheiterten.
 
Ich bekomme die Ausgabe nicht hin. Ich schaffe es nicht die Summenfelder aus der MySQL-Tabelle auszulesen.
Vergleiche mit is_null scheiterten bisher.
 
Ich sehe keinen isNull(). Auch sehe ich keinen Kommentar im Code, der mir hilft herauszufinden wo du was mit der Summenzeile machen willst.

Hilf uns dir zu helfen. Ansonsten können wirs auch gleich sein lassen.
 
Dann versuche ich es anders.
Mit folgender Abfrage an die DB
PHP:
SELECT
     id_lagerort,
     id_hersteller,
     SUM(anzahl) AS anzahl
FROM
     tl_textilien
GROUP BY
     id_lagerort,
     id_hersteller
WITH ROLLUP
Erhalte ich nachfolgende Ausgabe:
PHP:
"id_lagerort" "id_hersteller" "anzahl"
     "1"            "2"          "3"
     "1"            "7"          "5"
     "1"           "10"         "3"
     "1"          NULL          "11"
     "2"            "1"        "4"
     "2"            "5"        "1"
     "2"           NULL         "5"
    NULL           NULL        "16"
Wie komme ich mit PHP an die Summenfelder??

PS: ich habs versucht zu formatieren!

Liebe Grüße
Maik
 
Zurück