mysql spalte holen und rechnen

starrider

Grünschnabel
Hallo zusammen
Ich habe da ein problem.
Ich kenn mich mit php und sql noch nicht sehr gut aus.
Habe wohl einen Anfängerkurs bei unserer VHS gemacht.
Aber ich weiß nicht wie ich dieses problem hier lösen soll

Ich habe eine Datenbank in der eine Tabelle mit folgenden Spalten sind.
ID , personen , kinder

nun habe ich mir eine abfrage geschrieben die mir die sachen aus der Datenbank holt und ausgibt.

So wie hier Screenshout

Das ist mein code dazu:
PHP:
<?php

include ("form_connect.php");


$sql = "SELECT id,personen,kinder FROM form_daten";


mysql_select_db('form_daten');
$result = mysql_query($sql);

$zeilen = mysql_num_rows($result);
$spalten = mysql_num_rows($result);

echo '<table width="450" cellpadding="0" cellspacing="0" border="0">';
echo '<tr bgcolor="cccccc"><td>ID</td><td>Personen</td>';
echo '<td></td><td>Kinder</td></tr>';
for($i=0;$i<$zeilen;$i++)
{
echo '<tr bgcolor="';
	if ($i%2) {echo '#FFCC00';}
echo '">';
	$ergebnissfeld=mysql_fetch_array($result);
	for ($j=0;$j<$spalten;$j++)
{
	echo "<td>".$ergebnissfeld[$j]."</td>";
}

echo "</tr>";
}
echo "</table>";
mysql_close($dbId);
?>

Was ich weiß ist das ich mir die Spalte für "personen" und "kinder" in ein array speichern lassen kann.
Nun möchte ich aber das php mir die Einträge zusammen rechnet und in einer Variable speichert, so das ich das Ergebnis mit in der Tabelle einbauen kann.
Und es nicht von hand errechnen muss.

Ich hoffe ich habe mein problem einigermaßen gut erklärt :rolleyes:

Gruß Thomas
 
Was möchtest Du zusammenrechnen?
Personen + Kinder?
Code:
SELECT
ID,
personen,
kinder,
personen + kinder AS personenUndKinder
FROM form_daten
Oder möchtest Du die Summe aller Kinder und Personen (getrennt voneinander unter die Tabelle schreiben?
Dann ersetze Deinen Code-Teil, beginnend mit dem ersten for bis zur dazugehörigen Klammer mit folgendem:
PHP:
$kinderSum=0;
$personenSum=0;
$highlight=false;
while ($row = mysql_fetch_assoc($result) {
    $kinderSum += $row['kinder'];
    $personenSum += $row['personen'];
    
    echo '<tr'
        .(($highlight)
            ?' bgcolor="#FFCC00"'
            :'')
        .'><td>'
        .$row['ID']
        .'</td>'
        .'<td>'
        .$row['personen']
        .'</td>'
        .'<td>'
        .$row['kinder']
        .'</td>'
        .'</tr>'
        ."\n";
    
    $highlight=!$highlight;
}
echo '<tr bgcolor="'
    .(($highlight)?'#FFCC00':'#FFFFFF')
    .'"><td>'
    .'Summe'
    .'</td>'
    .'<td>'
    .$personenSum
    .'</td>'
    .'<td>'
    .$kinderSum
    .'</td>'
    .'</tr>'
    ."\n";
 
Hallo hpvw
Danke für Deine hilfe :)
Es hat ganz gut geklappt.
Hatte nur nen parse error gehabt als ich Deinen code mit einfügte
aber habe den fehler dann gefunden

in der while Schleife fehlte halt nur eine )

PHP:
while ($row = mysql_fetch_assoc($result) {

danach ging es dann :D

Hier der komplette Code nochmal

PHP:
<?php

include ("form_connect.php");


$sql = "SELECT id,nick,personen,kinder FROM form_daten";


mysql_select_db('form_daten');
$result = mysql_query($sql);

$zeilen = mysql_num_rows($result);
$spalten = mysql_num_rows($result);

echo '<table width="450" cellpadding="0" cellspacing="0" border="1" bordercolor="#cccccc">';
echo '<tr bgcolor="cccccc"><td>ID</td><td>Nick</td>';
echo '<td>Personen</td><td>Kinder</td></tr>';
$kinderSum=0; 
$personenSum=0; 
$highlight=false; 
while ($row = mysql_fetch_assoc($result)) { 
    $kinderSum += $row['kinder']; 
    $personenSum += $row['personen']; 
     
    echo '<tr' 
        .(($highlight) 
            ?' bgcolor="#FFCC00"' 
            :'') 
        .'><td>' 
        .$row['id'] 
        .'</td>'
		.'<td>' 
        .$row['nick'] 
        .'</td>' 
        .'<td>' 
        .$row['personen'] 
        .'</td>' 
        .'<td>' 
        .$row['kinder'] 
        .'</td>' 
        .'</tr>' 
        ."\n"; 
     
    $highlight=!$highlight; 
} 
echo '<tr bgcolor="' 
    .(($highlight)?'#FFCC00':'#FFFFFF') 
    .'"><td>' 
    .'<strong>Summe</strong>'
    .'</td>'
	.'<td>' 
    ."" 
    .'</td>' 
    .'<td>' 
    .'<strong>'.$personenSum.'</strong>' 
    .'</td>' 
    .'<td>' 
    .'<strong>'.$kinderSum .'</strong>'
    .'</td>' 
    .'</tr>' 
    ."\n"; 
echo "</table>";
mysql_close($dbId);
?>

Ich habe ihn dann nachher noch um eine Spalte erweitert
so das ich die Nicks noch angezeigt bekomme :)

Ich bedanke mich recht herzlich für die schnelle Hilfe hier

gruß Thomas
 
Zuletzt bearbeitet:
Zurück