Notenrechner Probleme ;)

Hi, ich hab für unsere Klassenhp einen notendurschnitts rechner erstellt…
aber leider funkt der nicht…

[PHP]
//der html teil dürfte glaube ich klar sein

<?php if(!isset($_POST["formular"])) { ?>

" method="POST">
1. Schulaufgabe
2. Schulaufgabe
3. Schulaufgabe
4. Schulaufgabe

1. EX
2. EX
3. EX
4. EX
5. EX
    </td>
  </tr>
</table><br>
<table width="300">
  <tr>
    <td width="243"> 1. M&uuml;ndliche Note</td>
    <td width="45"><input type="text" name="m1" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">        </td>
  </tr>
  <tr>
    <td> 2. M&uuml;ndliche Note </td>
    <td><input type="text" name="m2" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">        </td>
  </tr>
  <tr>
  <td><input name="formular" type="submit" value="Ausrechnen">
    <input type="reset" value="Zürcksetzen"></td>
  <td>&nbsp;</td>
  </tr>
      </table>
</form>
</div>
<?php } elseif ($_POST['s1'] >= 1 AND $_POST['s1'] <= 6) { //die note darf nur zwischen 1 und 6 sein, bei den untetren beispielen auch alle $s1 = $_POST['s1'];//wenn dies zutrifft, wird der $s1, den wert vom obigen formular übertragen!!! $anzahl. + 2; } elseif ($_POST['s2'] >= 1 AND $_POST['s2'] <= 6) { $s2 = $_POST['s2']; $anzahl. + 2; } elseif ($_POST['s3'] >= 1 AND $_POST['s3'] <= 6) { $s3 = $_POST['s']; $anzahl. + 2; } elseif ($_POST['s4'] >= 1 AND $_POST['s4'] <= 6) { $s4 = $_POST['s4']; $anzahl. + 2; } elseif ($_POST['e1'] >= 1 AND $_POST['e1'] <= 6) { $e1 = $_POST['e1']; $anzahl. + 1; } elseif ($_POST['e2'] >= 1 AND $_POST['e2'] <= 6) { $e2 = $_POST['e2']; $anzahl. + 1; } elseif ($_POST['e3'] >= 1 AND $_POST['e3'] <= 6) { $e3 = $_POST['e3']; $anzahl. + 1; } elseif ($_POST['e4'] >= 1 AND $_POST['e4'] <= 6) { $e4 = $_POST['e4']; $anzahl. + 1; } elseif ($_POST['e5'] >= 1 AND $_POST['e5'] <= 6) { $e5 = $_POST['e5']; $anzahl. + 1; } elseif ($_POST['m1'] >= 1 AND $_POST['m1'] <= 6) { $m1 = $_POST['m1']; $anzahl. + 1; } elseif ($_POST['m2'] >= 1 AND $_POST['m2'] <= 6) { $m2 = $_POST['m2']; $anzahl. + 1; } else { print("
"); print(/*hier steht dann die rechnung*/); // bei der rechnung ist dann auch schon das problem, die noten müssen ja addiert werden, das müsste eigendlich funktionieren, aber auch durch die anzahl der noten geteilt werden die es gibt, und das schaffe ich nicht, habt ihr verstanden was ich meine^^ } ?>

[/PHP]

du hast dich bissl mit elseif verrant.

Wenn du mit elseif prüft ob
[PHP]elseif ($_POST[‚s1‘] >= 1 AND $_POST[‚s1‘] <= 6)[/PHP]
und das trifft zu, wird das nächste else if, also
[PHP]elseif ($_POST[‚s2‘] >= 1 AND $_POST[‚s2‘] <= 6)[/PHP]
nicht mehr ausgeführt.

elseif = oder wenn
oder trifft nur ein wenn vorher kein if oder elseif gestimmt hat
wenn trifft nur ein wenn die bedinungen zutrifft

bei dir also so

if(!isset($formular))
  //Wenn das Formular nicht geschickt
elseif([...]) 
  //Wenn das Formular geschickt wurde UND [...] stimmt
elseif([...2])
  //Wenn das Formular geschickt wurde und  [...] nicht Stimmt UND [...2] stimmt
elseif([...3])
  //Wenn das Formular geschickt wurde und [...] und [...2] nicht zutreffen UND[...3] stimmt

USW

Schonmal was von gehört?

Und was soll das denn sein:
[php]$anzahl. + 1;[/php]

Und schau dir den vierten Link in meiner Signatur an.

[php]<?php

$noten = null;

if($_POST[‚noten‘])
{
$noten = explode(„,“, $_POST[‚noten‘]);
$noten = array_map(„trim“, $noten);

$buf = 0;

foreach($noten as $rechne)
{
	$buf += $rechne;
}

$erg = round($buf / count($noten), 2);

echo "Sie haben einen Durchschnitt von: " . $erg;

}
else
{
echo <<<out

Noten: (Bitte durch ein Komma trennen!)
out; }

?>[/php]

warum immer so schwer :stuck_out_tongue:

Ps: Lern draus :wink:
Pps: Wenn jemadn andere Zahlen eingibt als die zwischen 0 und 7 dann will er nicht das richtige ergebniss haben und hat selber schuld also spar dir die abfrage :wink:

@Slibbo: wozu so umständlich?

[php]$noten = explode(„,“, $_POST[‚noten‘]);
echo "Sie haben einen Durchschnitt von ".round(array_sum($noten) / count($noten), 2);[/php]

Weil es so für einen anfänger einfach übersichtlicher ist! -.-’

Sry das cih erst so spät antworte, cih hab zurzeit kein internet mehr…
aber das problem hat sich erledigt, ich hab ihn neugeschrieben, aber danke für eure Hilfe!