HTML Kleinen Rechner basteln

fruchtzwerg1989

Lt. Junior Grade
Dabei seit
Okt. 2004
Beiträge
441
Hallo, mein html und php ist nicht so sehr gut.
Habe mir nun einige Anleitungen durch gelesen, und will mir jetzt einen Rechern bauen.

Dieser soll anhand eines Festen wertes (auswählbar) und einem Variablem (vom User vorgegeben)

Ein Ergebniss über eine von mir definierte formel berechnen.
Das problem liegt jetzt aber
1. Mann kann zum einem die länge oder das Gewicht eingeben jeweils das andere soll vom Programm berechnet werden. Wie kann das script nun erkennen was es berechnen soll?

2. Wie sind die variablennamen die an php übergeben werden?

3. Wie kann man in php mit ³ rechnen?

Die Formel ist wie folgt

Gewicht = k * l³ / 100
k(Korpulenzfaktor) ist der auswählbare wert
l= vom User definierbare länge

meine html datei ist wie folgt

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
  <head>
    <title> Profishers.de - Fischkalkulator / Gewichts und längenberechnung!</title>
  
  </head>
  <body>
    <form action="rechner.php" method="post" name="Kalkulator">
<select name="fischarten">
  <option value="0,19">Aal</option>
  <option value="1,17">Äsche</option>
  <option value="1,48">Barbe</option>
  <option value="1,28">Barsch</option>
  <option value="1,13">Brasse</option>
  <option value="1,10">Döbel</option>
  <option value="1,09">Forelle</option>
  <option value="0,83">Hecht</option>
  <option value="1,08">Huchen</option>
  <option value="2,22">Karpfen</option>
  <option value="1,20">Lachs</option>
  <option value="1,19">Rotauge</option>
  <option value="1,19">Rotfeder</option>
  <option value="1,69">Schleie</option>
  <option value="0,96">Zander</option>
</select>

<!-- Ihr Name erscheint im Feld -->
Gewicht: <input type="text" name="gewicht" value="Gewicht"/>

<!-- Ihr Name erscheint im Feld -->
oder Länge: <input type="text" name="laenge" value="Länge"/>
<input type="submit" value="berechnen">

</form>

<input type=text size=10 name=Ergebnis value="<? echo 2*$a+$b/5;?>">




  </body>
</html>

die rechner.php


PHP:
<?php

echo round($fischarten*$laenge/100);

?>

wo liegt nun der Fehler?
Kann mir das jemand weiterhelfen?
Ist ja sicher ned soo schwer ;-)
 
Zitat von fruchtzwerg1989:
1. Mann kann zum einem die länge oder das Gewicht eingeben jeweils das andere soll vom Programm berechnet werden. Wie kann das script nun erkennen was es berechnen soll?

Durch vergleiche...



Zitat von fruchtzwerg1989:
2. Wie sind die variablennamen die an php übergeben werden?

http://de2.php.net/manual/de/reserved.variables.php

Also zb $_GET['fischarten']



Zitat von fruchtzwerg1989:

http://www.php.net/manual/de/function.pow.php



Zitat von fruchtzwerg1989:

Ich habe mir jetzt nicht alles durchgelesen, aber vor allem liegt's an komplett falschen Variablennamen...




Du solltest dir mal ein paar Tutorials wie das Quakenet/#php Tutorial anschauen und dich mit der php Dokumentation vertraut machen.
 
Ok irgendwie hängt es noch am übergeben der Variablen.
Wollte mir jetzt nur einfach die Variablen ausgeben lassen.

Und habe es wie folgt geschrieben

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
  <head>
    <title> Profishers.de - Fischkalkulator / Gewichts und längenberechnung!</title>
  
  </head>
  <body>
    <form action="rechner.php" method="post" name="Kalkulator">
<select name="fischarten">
  <option value="0,19">Aal</option>
  <option value="1,17">Äsche</option>
  <option value="1,48">Barbe</option>
  <option value="1,28">Barsch</option>
  <option value="1,13">Brasse</option>
  <option value="1,10">Döbel</option>
  <option value="1,09">Forelle</option>
  <option value="0,83">Hecht</option>
  <option value="1,08">Huchen</option>
  <option value="2,22">Karpfen</option>
  <option value="1,20">Lachs</option>
  <option value="1,19">Rotauge</option>
  <option value="1,19">Rotfeder</option>
  <option value="1,69">Schleie</option>
  <option value="0,96">Zander</option>
</select>

<!-- Feld Gewicht -->
Gewicht: <input type="text" name="gewicht" value="Gewicht"/>

<!-- Feld länge -->
oder Länge: <input type="text" name="laenge" value="Länge"/>
<input type="submit" value="berechnen">

</form>
</body>
</html>


die php datei

PHP:
<?php

$_GET['fischarten']
$_GET['laenge']

echo($fischarten);
echo($laenge);

?>

folgender Fehler kommt

Code:
Parse error: syntax error, unexpected T_VARIABLE in /www/htdocs/w0083588/rechner/rechner.php on line 4

woran liegt das?
 
Bevor du hier noch weiterfragst, lege ich dir wirklich nochmal das Tutorial nahe... in diesem Fall speziell über variablen --> http://tut.php-quake.net/de/variables.html


$_GET['fischarten'] ist eine Variable (eigentlich ein Arrayelement, aber sagen wir mal es ist ne Variable).


Du kannst nicht eine Variable einfach so in den Raum stellen, php weiß ja nicht was es damit machen soll.

'fruchtzwerg1989' ist auch keine deutscher Satz...

entweder direkt ausgeben,

PHP:
<?php

echo($_GET['fischarten']);
echo($_GET['laenge']);

?>


oder über eine andere Variable ausgeben:


PHP:
<?php

$fischarten = $_GET['fischarten'];
$laenge = $_GET['laenge'];

echo($fischarten);
echo($laenge);

?>
 
ok würde eigentlich auch $GET_['fischarten'] as $fischarten gehne?

ich habe das jetzt mal so gemacht. allerdings wird nichts auser ner leeren seite ausgegeben.

Das von quakenet habe ich schon mal durchgelesen genaus wie das

http://www.peterkropff.de

Aber alles merkt man sich ebend auch ned von einmal lesen!

Trotzdem erstmal danke bis hier her für die Hilfe!
 
Nein, das würde nicht gehen.

edit: Der Trick ist meiner Meinung nach die Beispiele von den Tutorials immer gleich selbst zu versuchen.
 
Vielleicht weil $_GET falsch ist. In GET stehen die Variablen, die per URL, also zB rechner.php?fisch=karpfen übergeben werden. Was du allerdings verwendest ist ein POST. Demnach:
PHP:
echo($_POST['fischarten']);
echo($_POST['laenge']);
 
Ok vielen dank stehe nun vor weiteren Problemen!

- Und zwar habe ich immer noch nicht ganz die schreibweise für ³ rausbekommen!
- wie kann ich die rechnung in der if schleife als variable definieren, um sie später wieder aus zugeben?
Und wieso bekomme ich als ergebniss immer 0?

folgendermasen sieht jetzt die php datei aus

PHP:
<?php

$fischarten = $_POST['fischarten'];
$laenge = $_POST['laenge']; 
$gewicht = $_POST['gewicht'];
$mind = 0;


if ($gewicht > $mind)
{
echo $fischart*$gewicht .'kg'.'         ';
}

if ($laenge > $mind)
{
echo $fischart*$laenge/100 .'kg';
}

?>
 
Bezüglich Hochzahlen:

http://www.php.net/manual/de/function.pow.php
PHP:
number pow  ( number $base  , number $exp  )



Du kannst die einzelnen Variablen mit var_dump anschauen, also:

PHP:
<?php

var_dump($fischarten);
var_dump($laenge);
var_dump($gewicht);


iirc muss man statt komma einen Punk angeben:


PHP:
<select name="fischarten">
  <option value="0.19">Aal</option>
  <option value="1.17">Äsche</option>
  <option value="1.48">Barbe</option>
  <option value="1.28">Barsch</option>
  <option value="1.13">Brasse</option>
  <option value="1.10">Döbel</option>
  <option value="1.09">Forelle</option>
  <option value="0.83">Hecht</option>
  <option value="1.08">Huchen</option>
  <option value="2.22">Karpfen</option>
  <option value="1.20">Lachs</option>
  <option value="1.19">Rotauge</option>
  <option value="1.19">Rotfeder</option>
  <option value="1.69">Schleie</option>
  <option value="0.96">Zander</option>
</select>




und nochmal: http://tut.php-quake.net/de/numbers-calculate.html



Sorry aber wenn du programmieren willst, musst du lernen dich in den Dokumentationen und Tutorials schlau zu machen.


Wenn ich jedesmal einen Thread aufmachen würde, wenn ich eine Syntax oder eine Funktion vergessen habe, dann hätte ich jetzt wahrscheinlich 32k Posts.
 
Ok danke der 2te link war deutlich besser im ersten habe ich das mit dem pow nicht wirklich verstanden.

Aber rigendwie bekomme ich immer das ergebniss 0!

Sieht einer von euch woran es liegt?
Die kommas wurden gegen . in der html ausgetauscht!

PHP:
<?php

$fischarten = $_POST['fischarten'];
$laenge = $_POST['laenge']; 
$gewicht = $_POST['gewicht'];

if ($gewicht > 0)
{
echo $fischart*pow($gewicht,3)/100 .'cm'.'         ';
}
if ($laenge > 0)
{
echo $fischart*pow($laenge,3)/100 .'kg';
}

?>
 
Ich würde mich in deinem zuletzt geposteten Code-Schnipsel mal fragen, wo die Variable $fischart gerkommen soll.
 
Ok vielen dank das hat das Problem gelöst!

Aber bei der 2ten Berechnung habe ich ein Problem

der User muss eine Zahl eingeben in gramm!

Die Berechnung sieht wie Folgt aus

G x 100
L ³ = ---------------------
K​

Beispiel

1.029 x 100
--------------------- = 343.000
0,30​

Nun ist das Ergebniss ja ³ wie bekomme ich nun das "Normale ergebniss,
also aus 343.000 müsste 70cm werden.

Heißt ein Fisch der bei dem K faktor von 0,30 1.029gramm wiegt ist 70cm lang!
Versteht ihr die Frage?
 
Einfach in php:

PHP:
$laenge = pow(343000, 1/3);

pow ist eigentlich die Potenzfunktion, aber die dritte Wurzel ist ja das selbe wie Basis1/3.
 
OK dann komme ich eigentlich schon zu meiner Letzten Frage (hoffe ihr seid mir nicht böse fange ebend gerade erst damit an).

Ich habe jetzt in der rechner.php folgenden Code

PHP:
<?php

$fischarten = $_POST['fischarten'];
$laenge = $_POST['laenge']; 
$gewicht = $_POST['gewicht'];

if($gewicht > 0)
{
$laengeges = $gewicht*100/$fischarten;
$laengeend = pow($laengeges, 1/3);
echo round($laengeend, 2);
}
else
{
echo 'Du musst Gewicht oder Länge angeben!';
}

if ($laenge > 0)
{
echo $fischarten*pow($laenge,3)/100 . 'g'.'            ';
}


?>

Wollte es aber gern noch so haben, das erst überprüft wird ob ein Gewicht > 0 eingegebn ist, wenn ja die Berechnung wie oben durchgeführt wird.
Und wenn nicht ob eine länge > 0 eingegeben ist.
Wenn ja wie oben berechen.
Wenn nicht ausgegeben wird "Du muss Gewicht oder Länge eingeben!"

Welche Schleife verwendet man den dazu?
Konnte in den Tutorials nichts für mich erkennbar richtiges finden.!
 
PHP:
if($gewicht > 0) {
	$laengeges = $gewicht*100/$fischarten;
	$laengeend = pow($laengeges, 1/3);
	echo round($laengeend, 2);
} elseif ($laenge > 0) {
	echo $fischarten*pow($laenge,3)/100 . 'g'.'            ';
} else {
	echo 'Du musst Gewicht oder Länge angeben!';
}



Zitat von fruchtzwerg1989:
Konnte in den Tutorials nichts für mich erkennbar richtiges finden.!

*seufz*, dann wirst du dich beim Programmieren sehr schwer tun!



Zitat von fruchtzwerg1989:

Offensichtlich weißt du nicht was eine Schleife ist, aber da du von Tutorials und Dokumentationen nicht viel hälst, ist es eh sinnlos einen Link zu posten...
 
Du darfst if-Statements verschachteln. Das würde in deinem Fall so aussehen:

PHP:
if($gewicht > 0)
{
	$laengeges = $gewicht*100/$fischarten;
	$laengeend = pow($laengeges, 1/3);
	echo round($laengeend, 2);
}
else
{
	if($laenge > 0)
	{
		echo $fischarten*pow($laenge,3)/100 . 'g'.'            ';
	}
	else
	{
		echo 'Du musst Gewicht oder Länge angeben!';
	}
}

Noch etwas übersichtlicher wäre das hier:

PHP:
if($gewicht > 0)
{
	$laengeges = $gewicht*100/$fischarten;
	$laengeend = pow($laengeges, 1/3);
	echo round($laengeend, 2);
}
elseif($laenge > 0)
{
	echo $fischarten*pow($laenge,3)/100 . 'g'.'            ';
}
else
{
	echo 'Du musst Gewicht oder Länge angeben!';
}

Edit: Mist, zu langsam ;)
 
ok so hatte ich es auch versucht, aber hatte nicht elseif sondern nur else geschrieben!

Das hatte ich wohl im tutorial übersehen!

Vielen dank für eure Hilfe und Ausdauer!
Jetzt weis ich wieder wieso ich meine Fragen immer hier stelle ;-)
 
Zurück
Top