Zahlen aus mehreren Spalten addieren

Spellchiller

Mitglied
Hallo zusammen,

ich komme mit einer Rechnung nicht zurecht.

Ich habe 2 mysql-tabellen

Tabelle Kunden
kd_nrvornamenachname
1MaxMustermann
2MaxiMusterfrau

Tabelle Preise
kd_preis_nrpreis1preis2preis3
110050200
2400100300

Nun würde ich gerne wissen was Max Mustermann bzw Maxi Musterfrau umgesetzt haben.

Anfängliche php-Versuche sind gescheitert...

PHP:
$status = "SELECT SUM(tbl_preise.preis1, tbl_preise.preis2, tbl_preise.preis3) tbl_kunden.kd_nr, tbl_kunden.kd_name, tbl_kunden.kd_vorname, tbl_preise.kd_preis_nr, 
    		FROM tbl_kunden, tbl_preise
			WHERE tbl_kunde.kd_nr = tbl_preise.kd_preis_nr
			GROUP BY kd_name
            ORDER BY summe DESC, kd_name ASC";

$ergebnis = mysql_query($status)
OR die("Error: $ergebnis <br>".mysql_error());

Könnte mich jmd verbesser?

Danke und Grüße
 
Hallo im Forum!

Sowas?
SQL:
SELECT 
   SUM(p.preis1 + p.preis2 + p.preis3) AS summe,
   k.kd_nr,  
   k.kd_name, 
   k.kd_vorname, 
   p.kd_preis_nr
FROM tbl_kunden k
INNER JOIN tbl_preise p
ON k.kd_nr = p.kd_preis_nr
GROUP BY 
   k.kd_nr,  
   k.kd_name, 
   k.kd_vorname, 
   p.kd_preis_nr
ORDER BY 
   SUM(p.preis1 + p.preis2 + p.preis3) DESC, 
   k.kd_name;

PS: Das ist eine DB Frage und hat eigentlich nichts mit PHP zu tun...
 
Zuletzt bearbeitet von einem Moderator:
Stimmt. Könnte in der Tat interessant werden.

Eine Frage noch. Nun habe ich ja meine summe. Die wird mir auch brav ausgegeben. Kann ich dieses Summe eigentlich auch verschachteln? Quasi
if summe > 5000 {A} elseif summe > 1000 {B} else {C}
oder so ähnlich?
 
Nunja, dir fehlt also noch der relevante Teil, um das von MySQL in PHP zu verwenden. Du könntest es ungefähr so lösen:

PHP:
$ergebnis = mysql_query($status)
OR die("Error: $ergebnis <br>".mysql_error());  

if($row = mysql_fetch_assoc($ergebnis))
{
  if($row['summe'] > 5000)
  {
    // Hier Code für Bedingung Summe > 5000
  }
  else if($row['summe'] > 1000)
  {
    // Hier Code für Bedingung Summe > 1000
  }
  else
  {
    // Hier Code für Bedingung Summe <= 1000
  }
}
 
hi,

hab das mal umgesetzt.

Ergebnis: Parse error: syntax error, unexpected '}' in /www/htdocs/w00e3f4e/database/kunde_abc.php on line 58

PHP:
<?php
$ergebnis = mysql_query($status)
OR die("Error: $ergebnis <br>".mysql_error());

if($row = mysql_fetch_assoc($ergebnis))
{
  if($row['summe'] > 5000)
  {
    $status = "A"
  } //Line 58
  else if($row['summe'] > 1000)
  {
    $status = "B"
  }
  else
  {
    $status = "C"
  }
}

if(isset($ergebnis))
{ 
}else {
echo "Error";
}
?>



<table>
<tr>
    <th>Summe</th>
	<th>Status</th>
    <th>Vorname</th>
    <th>Name</th>
</tr>

<?php
while($row = mysql_fetch_assoc($ergebnis))
 {

     echo "<tr>";
     echo "<td>". $row['summe'] . "</td>";
	 echo "<td>". $status . "</td>";
	 echo "<td>". $row['kd_vorname'] . "</td>";
	 echo "<td>". $row['kd_name'] . "</td>";
	 echo "</tr>";
	echo $row->Spaltenname;
   }
?>

Die müssen doch da hin, oder?
 
Dort, wo du den Kommentar "Line 58" hingeschrieben hast, muss oben drüber in der Befehlszeile ein Semikolon angehängt werden. Das ist bei PHP so. Also korrigiere:

PHP:
  if($row['summe'] > 5000)
  {
    $status = "A"; // << Semikolon anhängen
  } //Line 58
  else if($row['summe'] > 1000)
  {
    $status = "B"; // << Semikolon anhängen
  }
  else
  {
    $status = "C"; // << Semikolon anhängen
  }
 
Zurück