bmi-rechner - ergebnis in tabelle

sexiestgirlalive

Grünschnabel
hallo leute,

folgendes problem: ich soll eine tabelle erstellen, in der die bmi (body-mass-index) werte ausgegeben werden. oben brauche ich ein eingabefeld für gewicht (von bis) und eines für länge (von bis). so weit so gut. jetzt soll aber in der tabelle ausgegeben werden:
als spaltenbeschriftung: das minimalgewicht jeweils um 5 erweitert bis zum maximalgewicht.
selbiges als reihenbeschriftung für die länge
die einzelnen bmi-werte (bmi=gewicht / länge²).

das eingabeformular krieg ich noch hin, aber ab dann hängts total. bitte um hilfe!

lg michi
 
Was heisst gängt totoal?
Code?
An sich einfach mit $_GET['inputfeldname'] bzw $_POST['inputfeldname'] auslesen, je nach Methode des Formulars.
Dann halt noch überlegen, wie du eben die Werte der Tabelle ausrechnest und ne schleife bauen...

Sprich du musst einmal das Maximal gewicht ausrechnen,
vom aktuellen bis zum maxgewicht eine schleife durchlaufen und in dieser eine weitere Schleife wegen der Länge.
Evtl muss das auch andersrum sein, hängt von dem Darstellungswunsch deiner Tabelle ab,
 
Zuletzt bearbeitet:
also, das hab ich bis jetzt:
BMI-Tabelle <p>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<fieldset>
<legend>Eingabe der Grenzwerte</legend><p>
<input type="hidden" name="ergebnisanzeigen" value="1" />
Gewicht von <input size="17" type="text" name="minGew" value="60" onfocus="if(this.value=='Min. Gewicht')this.value='';" />&nbsp;
bis <input size="17" type="text" name="maxGew" value="100" onfocus="if(this.value=='Max. Gewicht')this.value='';" /> kg &nbsp;
<input type="hidden" name="ergebnisanzeigen" value="1" /><p>
Gr&ouml;sse von <input size="17" type="text" name="minlaenge" value="165" onfocus="if(this.value=='Min. laenge')this.value='';" />&nbsp;
bis <input size="17" type="text" name="maxlaenge" value="200" onfocus="if(this.value=='Max. laenge')this.value='';" /> cm &nbsp;
<input type="submit" name="Abschicken" value="Berechnen" class="button" />
</fieldset>
</form>

<?php
if (isset($_POST["ergebnisanzeigen"]))
{

echo "<p>Alle BMI f&uuml;r Gewicht zwischen " . $minGew . " und " . $maxGew . " kg und Gr&ouml;ssen zwischen " . $minlaenge . " und " . $maxlaenge . " cm:</p>
<table align=\"left\" style=\"margin-right: 10px;\">\n
<tr>\n
<th scope=\"col\">" . $minGew . "</th>\n
</tr>\n";


und ich kenne mich in php eigentlich gar nicht aus, weiß also ab hier schon nicht mehr weiter. wie mach ich das jetzt, dass die spaltenüberschriften sich fortlaufend um 5 erhöhen? und wie krieg ich die ausgerechneten werte in die richtigen zellen?
 
Dann zuerst, Daten des formulars bitte nicht mit $feldname sonder mit $_GET['feldname'] auslesen.
Dann ist die Frage was willst du auf die Breite und was auf die Länge abtragen, dementsprechend muss die Schleife geschaffen werden.

Mal von ausgegangen Gewicht nach unten, Länge in die Breite, dann sieht das so aus

PHP:
//Gewicht in Zeilen Abtragen
for( $gew=$_GET['minGew'];$gew<=$_GET['maxGew'];$gew+=5 )
{
 
 //Tabellenzeile öffnen
 echo "<tr>";
 
 //Länge pro Gewicht abtragen
 for( $len=$_GET['minlaenge'];$len<=$_GET['maxlaenge'];$len+=5 )
 {
   //BMI ausrechnen und ausgeben
   echo "<td>".($gew / ($len*$len))."</td>";
 }

 //Tabellenzeile schliessen
 echo "</tr>\n";
}

So in der Art sollte es gehen
 
Zuletzt bearbeitet:
Ist der Code noch der gleiche wie im Post?
Da ich glaub ich drei mal geändert habe wegen Tippfehler ;)
 
Dann zeit nochmal gen gesamten code, denn meiner hatte keine Syntaxfehler nach dem letzten Edit...
 
<html>
<head><title>&Uuml;bung aus IV2</title></head>
<body>
BMI-Tabelle<p>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<fieldset>
<legend>Eingabe der Grenzwerte</legend><p>
<input type="hidden" name="ergebnisanzeigen" value="1" />
Gewicht von <input size="17" type="text" name="minGew" value="60" onfocus="if(this.value=='Min. Gewicht')this.value='';" />&nbsp;
bis <input size="17" type="text" name="maxGew" value="100" onfocus="if(this.value=='Max. Gewicht')this.value='';" /> kg &nbsp;
<input type="hidden" name="ergebnisanzeigen" value="1" /><p>
Gr&ouml;sse von <input size="17" type="text" name="minlaenge" value="165" onfocus="if(this.value=='Min. laenge')this.value='';" />&nbsp;
bis <input size="17" type="text" name="maxlaenge" value="200" onfocus="if(this.value=='Max. laenge')this.value='';" /> cm &nbsp;
<input type="submit" name="Abschicken" value="Berechnen" class="button" />
</fieldset>
</form>

<?php
if (isset($_POST["ergebnisanzeigen"]))
{

echo "<p>Alle BMI f&uuml;r Gewicht zwischen " . $minGew . " und " . $maxGew . " kg und Gr&ouml;ssen zwischen " . $minlaenge . " und " . $maxlaenge . " cm:</p>
<table align=\"left\" style=\"margin-right: 10px;\">\n
//Gewicht in Zeilen Abtragen
for( $gew=$_GET['minGew'];$gew<=$_GET['maxGew'];$gew+=5 )
{

//Tabellenzeile öffnen
echo "<tr>";

//Länge pro Gewicht abtragen
for( $len=$_GET['minlaenge'];$len<=$_GET['maxlaenge'];$len+=5 )
{
//BMI ausrechnen und ausgeben
echo "<td>".($gew / ($len*$len))."</td>";
}

//Tabellenzeile schliessen
echo "</tr>\n";
}

?>
 
So hier nochmal der komplette Code, mit etwas optischer Veränderung, da die Spaltenbeschriftungen gefehlt haben...

In der Formel war noch ein Fehler, da der BMI mit Grösse in Metern und nicht in cm arbeitet, daher noch mal ein Länge*Länge/10000 ;)

PHP:
<html>
<head><title>&Uuml;bung aus IV2</title></head>
<body>
BMI-Tabelle<p>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>">
<fieldset>
<legend>Eingabe der Grenzwerte</legend><p>
<input type="hidden" name="ergebnisanzeigen" value="1" />
Gewicht von <input size="17" type="text" name="minGew" value="60" onfocus="if(this.value=='Min. Gewicht')this.value='';" />&nbsp;
bis <input size="17" type="text" name="maxGew" value="100" onfocus="if(this.value=='Max. Gewicht')this.value='';" /> kg &nbsp;
<input type="hidden" name="ergebnisanzeigen" value="1" /><p>
Gr&ouml;sse von <input size="17" type="text" name="minlaenge" value="165" onfocus="if(this.value=='Min. laenge')this.value='';" />&nbsp;
bis <input size="17" type="text" name="maxlaenge" value="200" onfocus="if(this.value=='Max. laenge')this.value='';" /> cm &nbsp;
<input type="submit" name="Abschicken" value="Berechnen" class="button" />
</fieldset>
</form>

<?php
if (isset($_POST["ergebnisanzeigen"]))
{

echo "<p>Alle BMI f&uuml;r Gewicht zwischen " . $_POST['minGew'] . " und " . $_POST['maxGew'] . " kg und Gr&ouml;ssen zwischen " . $_POST['minlaenge'] . " und " . $_GET['maxlaenge'] . " cm:</p>
<table align=\"left\" border=\"1\" style=\"margin-right: 10px;\">\n";

//Kopfzeile
echo "<tr><td>&nbsp;</td>";
for( $len=$_POST['minlaenge'];$len<=$_POST['maxlaenge'];$len+=5 )
{
 //BMI ausrechnen und ausgeben
 echo "<td><b>$len cm</b></td>";
}
echo "</tr>";

//Gewicht in Zeilen Abtragen
for( $gew=$_POST['minGew'];$gew<=$_POST['maxGew'];$gew+=5 )
{

//Tabellenzeile öen
echo "<tr><td><b>$gew kg</b></td>";

//Läe pro Gewicht abtragen
for( $len=$_POST['minlaenge'];$len<=$_POST['maxlaenge'];$len+=5 )
{
//BMI ausrechnen und ausgeben
echo "<td>".round(($gew / ($len*$len/10000)),2)."</td>";
}

//Tabellenzeile schliessen
echo "</tr>\n";
}

}
?>
 
Zuletzt bearbeitet:
Zurück