• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Notenrechner Probleme ;)

Status
Für weitere Antworten geschlossen.

RaZ0oR

Neues Mitglied
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"])) {
  ?>
</p>
 <div align="left">
 <form action="<?php echo $_SERVER["PHP_SELF"];?>" method="POST">        <table width="300">
      <tr>
          <td width="243">
             1. Schulaufgabe            </td>
      <td width="45">
       <input type="text" name="s1" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
            </td>
          </tr>
              <tr>
          <td>
             2. Schulaufgabe
            </td>
      <td>
       <input type="text" name="s2" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
            </td>
          </tr>
                <tr>
          <td>
             3. Schulaufgabe
            </td>
      <td>
       <input type="text" name="s3" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
            </td>
          </tr>
                <tr>
          <td>
             4. Schulaufgabe
            </td>
      <td>
       <input type="text" name="s4" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
            </td>
          </tr>
    </table><br>    <table width="300">
      <tr>
        <td width="243"> 1. EX </td>
        <td width="45"><input type="text" name="e1" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
        </td>
      </tr>
      <tr>
        <td> 2. EX </td>
        <td><input type="text" name="e2" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
        </td>
      </tr>
      <tr>
        <td> 3. EX </td>
        <td><input type="text" name="e3" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
        </td>
      </tr>
      <tr>
        <td> 4. EX </td>
        <td><input type="text" name="e4" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0">
        </td>
      </tr>
      <tr>
        <td> 5. EX </td>
        <td><input type="text" name="e5" style="width:20px; background:#CCCCCC; color:#993300; font:bold;" value="0"><br>
        
        </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("<br>");
  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^^
  }
  ?>
 
du hast dich bissl mit elseif verrant.

Wenn du mit elseif prüft ob
PHP:
elseif ($_POST['s1'] >= 1 AND $_POST['s1'] <= 6)
und das trifft zu, wird das nächste else if, also
PHP:
elseif ($_POST['s2'] >= 1 AND $_POST['s2'] <= 6)
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
Code:
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 <style></style> gehört?

Und was soll das denn sein:
PHP:
$anzahl. + 1;

Und schau dir den vierten Link in meiner Signatur an.
 
Zuletzt bearbeitet von einem Moderator:
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
<form action="{$_SERVER['PHP_SELF']}" method="post">
	Noten: <input name="noten" type="text" /> (Bitte durch ein Komma trennen!)<br />
	<input name="send" type="submith" value="Berechnen" />
</form>
out;
}

?>

warum immer so schwer :P

Ps: Lern draus ;)
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 ;)
 
@Slibbo: wozu so umständlich?

PHP:
$noten = explode(",", $_POST['noten']);
echo "Sie haben einen Durchschnitt von ".round(array_sum($noten) / count($noten), 2);
 
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!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben