• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SELECT SUM - Warenwert ausgeben

kercon

Mitglied
Hallo Leute,
sicher etwas ganz Simples, aber ich komme nicht weiter... Ich möchte den Wert meines Warenbestandes ausgeben, aber irgendwie funzt es nicht... :-(

PHP:
$sql = "SELECT products_id, products_model,  products_quantity , products_price FROM xt_products WHERE products_quantity < 999 ORDER by products_model ASC";
            
$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");

$anzahl = mysql_num_rows($adressen_query);
echo "Anzahl der Artikel: $anzahl";
?>
     
<strong>
<?php
$wert = mysql_query("SELECT SUM (products_quantity * products_price) FROM xt_products WHERE products_quantity < 999");
echo "Warenbestand: $wert EUR";
?>
</strong>

Schonmal vielen Dank!
 

kercon

Mitglied
Ich möchte je die Werte der Spalten products_quantity und products_price erst addieren und dann die Ergebnisse mit einander multiplizieren... und somit den Wert meines Warenbestandes ausrechnen.
Damit die Masterartikel mir nicht das Ergebnis verfälschen, habe ich diese mit einen Bestand von "999" angegeben und in der Ausgabe ausgeschlossen...
 
S

struppi

Guest
Ich möchte je die Werte der Spalten products_quantity und products_price erst addieren und dann die Ergebnisse mit einander multiplizieren... und somit den Wert meines Warenbestandes ausrechnen.
Damit die Masterartikel mir nicht das Ergebnis verfälschen, habe ich diese mit einen Bestand von "999" angegeben und in der Ausgabe ausgeschlossen...

Ich wollte iegentlich von dir wissen was das heißt:
aber irgendwie funzt es nicht...
Also was bei dir funz (oder auf deutsch funktionieren) bedeutet, was passiert, was nicht passiert, was du getan hast um das ändern und ob es Fehlermeldungen o.ä. gibt und was du dagegen getan hast. Kurz, was deine Fehleranalyse bisher war. "irgendwie funzt es nicht" ist so ziemlich die nutzloseste Fehlerbeschreibung die es gibt.
 

kercon

Mitglied
mmmh, was soll ich da groß schreiben, es funzt halt nicht ;-)

Es wird lediglich -->

Warenbestand: EUR


angezeigt... irgendwie fehlt da die Zahl vorm "EUR"
 
S

struppi

Guest
mmmh, was soll ich da groß schreiben, es funzt halt nicht ;-)

Es wird lediglich -->

Warenbestand: EUR


angezeigt... irgendwie fehlt da die Zahl vorm "EUR"
Das ist schon mal tausendmal besser als "es funzt nicht", es ist eine Information!
Jetzt wäre es interessant zu Wissen, was du versucht hast dein Problem zu lösen?
 

kercon

Mitglied
Das ist schon mal tausendmal besser als "es funzt nicht", es ist eine Information!
Jetzt wäre es interessant zu Wissen, was du versucht hast dein Problem zu lösen?
Ich bin zwischenzeitlich mal einigen Links nachgegangen... Aber leider klappt es immer noch nicht, denn vom "EUR" steht immer noch keine Zahl :-( Hier nochmal mein der Code...
Code:
      $sql = "SELECT p.products_id,
                   pd.products_id,
                   p.products_model,
                   pd.language_code,
                   pd.products_name,                                                  
                   FORMAT(p.products_quantity, 0) AS products_quantity,   
                   FORMAT(p.products_price, 2) AS products_price                      
                   FROM xt_products AS p, xt_products_description AS pd 
                   WHERE p.products_id = pd.products_id
                   AND pd.language_code = 'DE'
                   AND p.products_quantity < 999
                   ";
            
    $adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");

    $anzahl = mysql_num_rows($adressen_query);
    echo "Anzahl der Artikel: $anzahl";
    ?> 
| <strong>
[U]<?php
$wert = mysql_query("SELECT SUM(p.products_price*p.products_quantity) FROM xt_products");
echo "Warenbestand/-wert: $wert EUR";
?>[/U]
</strong><p>

Sorry, wenn ich nerve!
 
S

sysop

Guest
PHP:
function dbconnect($db_host, $db_user, $db_pass, $db_name)
{

   $db_connect = @mysql_connect($db_host, $db_user, $db_pass);
   $db_select = @mysql_select_db($db_name);
   if (!$db_connect)
   {
      die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to establish connection to MySQL</b><br>".mysql_errno()." : ".mysql_error()."</div>");
   }

   elseif (!$db_select)
   {
      die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to select MySQL database</b><br>".mysql_errno()." : ".mysql_error()."</div>");
   }
}

$db = dbconnect($db_host, $db_user, $db_pass, $db_name);

// Da fummelst du dir mal deinen Code rein

   $sql = 'DEIN_SQL_STATEMENT';

   $result = mysql_query($sql);
   if(!$result)
   {
      Echo "Nö, da gibbet nix zum resulten....";
   }

   else
   {
       while ($row = mysql_fetch_row($result))
       {
          for($a = 0; $a < mysql_num_fields($result); $a++)
          {
             echo "Feldnummer:".$a." --> ".$row[$a]."<br>";
          }
          echo "<hr>";
       }

    }
 
Zuletzt bearbeitet von einem Moderator:

kercon

Mitglied
Nun bin ich ein paar Schritte weiter... Allerdings stimmt mich das Rechenergebnis immer noch nicht glücklich... irgendwie GIGANTISCH!
Wenn ich die Abfrage (blau) auf eine products_id begrenze klappt es! Nun meine Frage: Wie bekomme ich es hin, die unten in der Tabelle (rot) genutzten Werte auch für die Berechnung zu nutzen?

hier nochmal der Text...
<?php

$mysqlhost=""
$mysqluser=""
$mysqlpwd=""
$mysqldb=""

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");

mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

$sql = "SELECT p.products_id,
pd.products_id,
p.products_model,
pd.language_code,
pd.products_name,
FORMAT(p.products_quantity, 0) AS products_quantity,
FORMAT(p.products_price, 2) AS products_price
FROM xt_products AS p, xt_products_description AS pd
WHERE p.products_id = pd.products_id
AND pd.language_code = 'DE'
AND p.products_quantity < 999
ORDER BY products_name ASC
";

$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");
?>

<table width="100%">
<tr valign="bottom">
<td><h1>Warenbestand</h1>

Warenwert:

<?php
$wert = "SELECT FORMAT(SUM(FORMAT(products_price, 2)*products_quantity), 2) as summe FROM xt_products";

$result = mysql_query($wert);

if (!$result) {
echo "Konnte Abfrage ($sql) nicht erfolgreich ausführen von DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "Keine Zeilen gefunden, nichts auszugeben, also Ende";
exit;
}

while ($row = mysql_fetch_assoc($result)) {
echo $row["summe"];
}

mysql_free_result($result);
?>

<table>
<tr>
<td>ID</td><td>Artikel-Nummer</td><td>Artikel-Name</td><td>Standard-Preis</td><td>Bestand</td>
</tr>

<?php
while ($adr = mysql_fetch_array($adressen_query)){
?>

<tr>
<td align="right"><?=$adr['products_id']?></td>
<td align="right"><?=$adr['products_model']?></td>
<td><?=$adr['products_name']?></td>
<td align="right"><?=$adr['products_price']?> &euro;</td>
<td align="right"><?=$adr['products_quantity']?></td>

</tr>

<?php
}
?>
</table>
 
S

struppi

Guest
Das erreichst du vermutlich, in dem du die Felder bei der Abfrage integrierst. Du brauchst keine zwei Abfragen.

EDIT: Vermutlich. Wenn du nur die Gesamtsumme haben willst, dann musst du die nur in einer Variabel speichern.

2 EDIT: Dein Code ist so ein Kuddelmuddel, das ich schwierigkeiten habe zu erkennen was du eigentlich willst. Die Frage wäre eher, warum machst du die blaue Abfrage an dieser Stelle?
 

kercon

Mitglied
Das erreichst du vermutlich, in dem du die Felder bei der Abfrage integrierst. Du brauchst keine zwei Abfragen.

EDIT: Vermutlich. Wenn du nur die Gesamtsumme haben willst, dann musst du die nur in einer Variabel speichern.

2 EDIT: Dein Code ist so ein Kuddelmuddel, das ich schwierigkeiten habe zu erkennen was du eigentlich willst. Die Frage wäre eher, warum machst du die blaue Abfrage an dieser Stelle?

Ich möchte zum einen die Ausgabe der kompletten Preis/Bestandsliste und zum anderen möchte ich (blaue Abfrage) den Wert meines Lagerbestandes anzeigen...
 
S

struppi

Guest
Dann musst du nur das machen, was ich im ersten Edit gesagt habe oder die blaue Abfrage nach der Abfrage der anderen ausführen.
 
Werbung:
Oben