970 Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Ich prüfe alle felder, ob etwas drin steht, aber ich komme auch beim Ausfüllen aller Felder nicht auf die Site, die es mir dann anzeigen sollte...also die auswertung....ich sehe schon gar keine Fehler mehr, bitte um hilfe!!
<?php
$link = mysql_connect("localhost", "root", "");
//mysql_select_db("foodcoach",$dp);
if (!$link)
die("DB-Server kann nicht erreicht werden");
if (!mysql_select_db("foodcoach"))
die("Kann die Datenbank nicht anwählen");
session_start();
if(!isset($_SESSION['user_res']) || $_SESSION['user_res'] == "")
die("Required Session not found!");
$ses = $_SESSION['user_res'];
$user_data = explode("_",$ses);
$uID = $user_data[0];

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ihr Energieumsatz</title>
<style type="text/css">
<!--
.Stil1 { font-size: large
}
-->
</style>
</head>

<body>
<p align="left" class="Stil1">
<?php
$groesse=$_POST['groesse'];
$ueber=$_POST['ueber'];
$raucher=$_POST['raucher'];
$geschlecht=$_POST['geschlecht'];
$beruf=$_POST['beruf'];
$tat1=$_POST['tatigkeit1'];
$tat2=$_POST['tatigkeit2'];
$tat3=$_POST['tatigkeit3'];
$tat4=$_POST['tatigkeit4'];
$tat5=$_POST['tatigkeit5'];
$dau1=$_POST['dauer1'];
$dau2=$_POST['dauer2'];
$dau3=$_POST['dauer3'];
$dau4=$_POST['dauer4'];
$dau5=$_POST['dauer5'];

if($groesse=="" OR $gewicht=="" OR $raucher=="Bitte ausw&auml;hlen" OR $ueber=="Bitte ausw&auml;hlen" OR $wieviel=="Bitte ausw&auml;hlen" OR $geschlecht=="Bitte ausw&auml;hlen" OR $beruf=="Bitte ausw&auml;hlen")
{
echo "Sie müssen erst ALLE Felder ausfüllen, damit eine Berechnung möglich ist!
<a href='energy.php'>Zurück zum Formular</a>";
}
else
{
if(is_numeric($groesse) && is_numeric($gewicht))
{
if($ueber=="Ja")
{$gewicht=$groesse-100;}
elseif($ueber=="Nein")
{$gewicht=$_POST['gewicht'];}
if($raucher="< 10 Zigaretten")
{
if($geschlecht=="weiblich")
{$grundu=$gewicht*7+700;}
else
{$grundu=$gewicht*10+900;}
}
elseif($raucher=="> 10 Zigaretten")
{
if($geschlecht=="weiblich")
{$grundu=$gewicht*7+700+250;}
else
{$grundu=$gewicht*10+900+250;}
}
if($beruf=="sehr leicht")
{$arbeitsumsatz=$grundu*0.2;}
elseif($beruf=="leicht")
{$arbeitsumsatz=$grundu*0.3;}
elseif($beruf=="mittel")
{$arbeitsumsatz=$grundu*0.5;}
elseif($beruf=="schwer")
{$arbeitsumsatz=$grundu*0.75;}
elseif($beruf=="sehr schwer")
{$arbeitsumsatz=$grundu*1;}
if($dau1!=""){
if(is_numeric($dau1))
{$sql1="SELECT abbau FROM sportverbrauch WHERE '$tat1'=tatigkeit";
$result1=mysql_query($sql1);
$abbau=mysql_fetch_assoc($result1);
$verbrauch=$gewicht*$dau1*$abbau/7;}}
else{
$verbrauch1="0";}
if($dau2!=""){
if(is_numeric($dau2)){
$sql2="SELECT abbau FROM sportverbrauch WHERE '$tat2'=tatigkeit";
$result2=mysql_query($sql2);
$abbau2=mysql_fetch_assoc($result2);
$verbrauch2=$gewicht*$dau2*$abbau2/7;}}
else{
$verbrauch2="0";}
if($dau3!=""){
if(is_numeric($dau3)){
$sql3="SELECT abbau FROM sportverbrauch WHERE '$tat3'=tatigkeit";
$result3=mysql_query($sql3);
$abbau3=mysql_fetch_assoc($result3);
$verbrauch3=$gewicht*$dau3*$abbau3/7;}}
else{
$verbrauch3="0";}
if($dau4!=""){
if(is_numeric($dau4)){
$sql4="SELECT abbau FROM sportverbrauch WHERE '$tat4'=tatigkeit";
$result4=mysql_query($sql4);
$abbau4=mysql_fetch_assoc($result4);
$verbrauch4=$gewicht*$dau3*$abbau4/7;}}
else{
$verbrauch4="0";}
if($dau5!=""){
if(is_numeric($dau5)){
$sql5="SELECT abbau FROM sportverbrauch WHERE '$tat5'=tatigkeit";
$result5=mysql_query($sql3);
$abbau5=mysql_fetch_assoc($result5);
$verbrauch5=$gewicht*$dau5*$abbau5/7;}}
else{
$verbrauch5="0";}
$sportumsatz=$verbrauch+$verbrauch2+$verbrauch3+$verbrauch4+$verbrauch5;

$gesamtumsatz=$grundu+$arbeitsumsatz+$sportumsatz;
$khkcal=$gesamtumsatz*0.45;
$khg=$khkcal/4.1;
$fkcal=$gesamtumsatz*0.20;
$fg=$fkcal/9.3;
$ekcal=$gesamtumsatz*0.35;
$eg=$ekcal/4.1;

echo "<table><tr><td>Ihre Ern&auml;hrungsumsätze:</td></tr><tr><td></td></tr>
<tr><td>Grundumsatz:</td><td>$grundu</td></tr>
<tr><td>Arbeitsumsatz:</td><td>$arbeitsumsatz</td></tr>
<tr><td>Sportumsatz:</td><td>$sportumsatz</td></tr></tr></table>
<tr><td>Gesamtumsatz:</td><td>$gesamtumsatz</td></tr><tr><td></td></tr></table>

<table><tr><td>N&auml;hrstoffverteilung</td><td>in kcal</td><td>in Gramm</td></tr>
<tr><td></td></tr>
<tr><td>Kohlenhydrate (45 %)</td><td>$khkcal</td><td>$khg</td></tr>
<tr><td>Fett (20 %)</td><td>$fkcal</td><td>$fg</td></tr>
<tr><td>Eiweiß (35 %)</td><td></td><td>$eg</td></tr></table>";
mysql_query("INSERT INTO energieumsatz(grundumsatz, arbeitsumsatz, sportumsatz, gesamtumsatz, kohlenhydrate, fett eiweiss VALUES ($grundu, $arbeitsumsatz,$sportumsatz,$gesamtumsatz) WHERE regid=$uID");
}

else
{
echo "Sie müssen erst ALLE Felder richtig ausfüllen, damit eine Berechnung möglich ist!
<a href='energy.php'>Zurück zum Formular</a>";
}
}
mysql_close($link);

?>

</body>
</html>

1 Antwort

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Die Variable $gewicht wird nie initialisiert.

Mithilfe einer Strukturierung könntest du deinen Code vermutlich viel besser lesen. Beispiel:

<?php
$groesse= $_POST['groesse'];
$gewicht= $_POST['gewicht']; // von mir eingefügt
$ueber= $_POST['ueber'];
$raucher= $_POST['raucher'];
$geschlecht= $_POST['geschlecht'];
$beruf= $_POST['beruf'];
$tat1= $_POST['tatigkeit1'];
$tat2= $_POST['tatigkeit2'];
$tat3= $_POST['tatigkeit3'];
$tat4= $_POST['tatigkeit4'];
$tat5= $_POST['tatigkeit5'];
$dau1= $_POST['dauer1'];
$dau2= $_POST['dauer2'];
$dau3= $_POST['dauer3'];
$dau4= $_POST['dauer4'];
$dau5= $_POST['dauer5'];

if ( $groesse== ""
|| $gewicht== ""
|| $raucher== "Bitte ausw&auml;hlen"
|| $ueber== "Bitte ausw&auml;hlen"
|| $wieviel== "Bitte ausw&auml;hlen"
|| $geschlecht== "Bitte ausw&auml;hlen"
|| $beruf== "Bitte ausw&auml;hlen"
) {
echo "Sie müssen erst ALLE Felder ausfüllen, damit eine Berechnung möglich ist!<br><a href='energy.php'>Zurück zum Formular</a>";
}
...