Antworten auf deine Fragen:
Neues Thema erstellen

HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

declaudi

Nicht mehr ganz neu hier

Hallo Leute,

ich bin echt am verzweifeln. Ich muss bis morgen früh um acht eine verschachtelte if-Anweisung in einem Formular hinbekommen, aber aus irgendwelchen Gründen will die Ausgabe nicht funktionieren. Ich beschäftige mich auch erst seit ca. 2 Wochen damit - glaub ich versteh das alles noch nicht so wirklich.

Hier ist mein Code:

<body>

<style>

table {
border: 1px solid #768b5e;
background-color: #a6c483;
}

td {
background-color: #c9d9b7;
padding: 10px;
}
</style>

<?php
//Variablen blocken
$eingabe = $_GET["eingabe"];
?>

<h2> Punktespiegel bei Tests </h2>

<form action
= " <?php $_SELF_PHP ?> " method= "GET" color="#660000">

<table border="1px" width="500px">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
Gesamtpunkte </td>
<td>
35 </td>
<td> </td>
<td> </td>
</tr>
<tr>

<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
Prozente </td>
<td>
ab Punkte </td>
<td>
Note </td>
<td>
Notenbezeichnung </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>

<td> 92% </td>
<td>
32,2 </td>
<td>
1 </td>
<td>
sehr gut </td>
</tr>
<tr>
<td>
81% </td>
<td>
28,4 </td>
<td>
2 </td>
<td>
gut </td>
</tr>
<tr>
<td>
67% </td>
<td>
23,5 </td>
<td>
3 </td>
<td>
befriedigend </td>
</tr>
<tr>
<td>
50% </td>
<td>
17,5 </td>
<td>
4 </td>
<td>
ausreichend </td>
</tr>
<tr>
<td>
37% </td>
<td>
13,0 </td>
<td>
5 </td>
<td>
mangelhaft </td>
</tr>
<tr>
<td>
0% </td>
<td>
0,0 </td>
<td>
6 </td>
<td>
ungenügend </td>
</tr>
</table>

<h5>
Bitte geben Sie hier Ihre erreichten Punkte ein: </h5>

<table>
<tr>
<td> </td>
<td><input
type="text" name="eingabe"
value="<?php echo $eingabe ?>"></td>
<td><input
type="submit" name="erreichte_punkte" value="Note errechnen" /></td>
</tr>
</table>

</form>

<?php

$eingabe == $_GET["eingabe"] {

if ($_GET < 0.37)
{
echo "Sie haben die Note 6 erreicht.";
echo "Die Prüfung ist nicht bestanden!";
}
else
{
if ($_GET < 0.50)
{

echo "Sie haben die Note 5 erreicht.";
echo "Die Prüfung ist nicht bestanden!";
echo
"Es besteht jedoch dei Möglichkeit einer Nachprüfung.";
echo "Bitte melden Sie sich zur Nachprüfung an.";
}
}

else
{
if ($_GET < 0.67)
{
echo
"Sie haben die Note 4 erreicht.";
echo "Die Prüfung ist bestanden!";
}
}

else
{
if ($_GET < 0.81)
{
echo
"Sie haben die Note 5 erreicht.";
echo
"Die Prüfung ist bestanden!";
}
}

else
{
if ($_GET < 0.92)
{
echo
"Sie haben die Note 2 erreicht.";
echo
"Die Prüfung ist bestanden!";
}

else
{
echo
"Sie haben die Note 1 erreicht.";
echo "Die Prüfung ist bestanden!";
}
}
}
?>


</body>


Es ist eine Tabelle im Formular. Unter dieser befindet sich ein Eingabefeld mit dem Button "Note errechnen". Es soll so funktionieren das wenn ich dort meine erreichte Punktzahl einschreibe und dies abschicke, das, dass Echo der erhaltenen Note und des erreichten Durchschnitts zurück erhalte.


Ich hoffe ihr könnt mir helfen - ich grübel schon den ganzen langen Tag!
 

W

waterwebdesign

Guest

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

$_GET Dieser Ausdruck ist quasi ohne Aussage. Der PHP-Interpreter weiß damit nur, dass er eine Variable aus der Adresszeile auslesen soll, aber er weiß nicht welche, und spuckt einen Fehler aus.
Nach jedem if-Teil brauchst du nur eine geschweifte Klammer zu schließen, wenn du den letzten else-Teil geschlossen hast, musst du noch vier weitere Klammern schließen. Aber anstatt
... else { if(bed) {...} } ...
kannst du kürzer schreiben
...elseif(bed) {...} ...
Damit sparst du dir, unzählige Klammern zu schließen.
 

CIX88

Aktives Mitglied

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

$eingabe == $_GET["eingabe"] {
Die Klammer am Schluss ist fehl am Platz. Dies ist eine Zuweisung, keine Abfrage.
PHP:
$eingabe == $_GET["eingabe"];

if ($_GET < 0.67)
Hier wird falsch abgefragt, du meinst sicherlich $eingabe ... dann so:
PHP:
if ($eingabe < 0.67)

Im Zusammenhang mit IF und ELSE könnte es dann so aussehen (Grundprinzip):
PHP:
if ($eingabe < 0.35 ) {
 // ausgabe
} elseif ( $eingabe < 0.50 ) {
 // ausgabe
} else {
 // nichts trifft zu
}
 

declaudi

Nicht mehr ganz neu hier

Danke erstmal an Euch;

@waterwebdesign;
dachte das isch über das $_GET die Variable neu zuweise und mir amit auch einiges erspare.

@CIX88;
hab alles ordentlich geändert in meinem Code aber die Ausgabe funktioniert immer noch nicht. Ich weiß auch nicht was ich falsch mache


<?php

$eingabe == $_GET["eingabe"];

if ($eingabe < 0.37)
{
echo "Sie haben die Note 6 erreicht.";
echo "Die Prüfung ist nicht bestanden!";
}
elseif ($eingabe < 0.50)
{
echo "Sie haben die Note 5 erreicht.";
echo "Die Prüfung ist nicht bestanden!";
echo "Es besteht jedoch dei Möglichkeit einer Nachprüfung.";
echo "Bitte melden Sie sich zur Nachprüfung an.";
}
elseif ($eingabe < 0.67)
{
%
 
Zuletzt bearbeitet:

tomtom

css/cms-learning

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

kann es sein das du zweimal die note 5 vergeben hast?
 

declaudi

Nicht mehr ganz neu hier

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

Hey tomtom,

ja ist so - aber ich glaub das hätte nicht gehindert - trotzdem dankä
 

CIX88

Aktives Mitglied

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

Achso habe ich Zeile mit $eingabe == $_GET["eingabe"]; ganz oben jetzt übersehen. Ja dann ist die Zeile mit $eingabe == $_GET["eingabe"] { weiter unten überflüssig.
Diese und die dazugehörige Klammer kann dann raus, sonst werden die Anfragen gar nicht erst angesprochen.
 

sokie

Mod | Web

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

Du musst deiner Ergebnisse weiter einschränken.
gehe mal vom fall aus das $eingabe grösser als 0.67 is - dann sind die anderen Bedingungen auch erfüllt und die Ausgaben werden zusätzlich auch ausgegeben.

die bedingung muss eher so aussehen:
wenn $eingabe > als x ist aber kleiner als y. dann: ausgabe
fröhliches logeln:)
 

declaudi

Nicht mehr ganz neu hier

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

Ach egal was ich an dem Ding mache es sagt mir immer nur das er die datei nicht findet wenn ich den Button absende ... snief

@sokie: if ($eingabe < 0.37 xor > 0.50) -> das funktioniert auch nicht wirklich


Vielleicht liegt der Fehler ja auch wo ganz anderst
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

Du hast bei action ein paar Leerschritte zu viel und $_SELF_PHP gibt es nicht.

Irgendwie so müsste es funktionieren (html und css vielleicht noch überarbeiten):

PHP:
<?
error_reporting(E_ALL);
$GESAMT=35;

$NOTE[1]=92;
$NOTE[2]=81;
$NOTE[3]=67;
$NOTE[4]=50;
$NOTE[5]=37;
$NOTE[6]=0;

$NOTE_TEXT[1]='sehr gut';
$NOTE_TEXT[2]='gut';
$NOTE_TEXT[3]='befriedigend';
$NOTE_TEXT[4]='ausreichend';
$NOTE_TEXT[5]='mangelhaft';
$NOTE_TEXT[6]='ungenügend';

$NOTE_INFO[1]='Die Prüfung ist bestanden!';
$NOTE_INFO[2]='Die Prüfung ist bestanden!';
$NOTE_INFO[3]='Die Prüfung ist bestanden!';
$NOTE_INFO[4]='Die Prüfung ist bestanden!';
$NOTE_INFO[5]='Die Prüfung ist nicht bestanden!
               Es besteht jedoch die Möglichkeit einer Nachprüfung.
               Bitte melden Sie sich zur Nachprüfung an.';
$NOTE_INFO[6]='Die Prüfung ist nicht bestanden!';

unset($PUNKTE);
$INFOTEXT='';
if(isset($_POST['eingabe']) && trim($_POST['eingabe'])!=''){
   $PUNKTE=(float) str_replace(',', '.', $_POST['eingabe']);
   if($PUNKTE>$GESAMT)unset($PUNKTE);
}




?>
<html>
<head>
        <title>Punktespiegel bei Tests</title>
<style>
table {
border: 1px solid #768b5e;
background-color: #a6c483;
}
.nonote{
background-color: #c9d9b7;
}
.note{background-color: #a6c483;}
</style>
</head>
<body>
<h2> Punktespiegel bei Tests </h2>
<table border="1px" width="500px">
<tr class="nonote">
<td> Gesamtpunkte </td>
<td> <?echo $GESAMT;?> </td>
<td> &nbsp;</td>
<td> &nbsp;</td>
</tr>
<tr class="nonote">
<td> Prozente </td>
<td> ab Punkte </td>
<td> Note </td>
<td> Notenbezeichnung </td>
</tr>
<?
while(list($k,$v)=each($NOTE)){
      $s='nonote';
      $p=round($GESAMT/100*$v,1);
      if(isset($PUNKTE) && $PUNKTE>=$p){
         $s='note';
         $INFOTEXT=nl2br(htmlentities($NOTE_INFO[$k]));
         unset($PUNKTE);
      }
      ?>
      <tr class="<?echo $s;?>">
      <td> <?echo $v;?>% </td>
      <td> <?echo number_format($p, 1, ',','');?> </td>
      <td> <?echo $k;?> </td>
      <td> <?echo htmlentities($NOTE_TEXT[$k]);?> </td>
      </tr>
      <?
}
?>
</table>
<?echo $INFOTEXT;?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST">
<h5> Bitte geben Sie hier Ihre erreichten Punkte ein: </h5>
<table>
<tr class="nonote">
<td><input type="text" name="eingabe" value=""></td>
<td><input type="submit" name="erreichte_punkte" value="Note errechnen" /></td>
</tr>
</table>
</form>
</body>
</html>
 
Zuletzt bearbeitet:

declaudi

Nicht mehr ganz neu hier

AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

So jetzt hab ich den Fehler ich hatte garkeine Berechnung drin ... oh oh das knallharte Black Out!

if(isset($_GET['note'])) {
$note = $_GET["note"];
$einhundert = 35;
$ergebnis = $note/$einhundert; // $note * 100 / $einhundert - nur wenn die if-Anweisungen ohne Dezimalzahlen gestaltet iat
echo $ergebnis . "<br />";

if ($ergebnis < 0.37)
{
echo "Sie haben die Note 6 erreicht.";
echo "Die Prüfung ist nicht bestanden!";
}
else
{
if ($ergebnis < 0.50)
{
echo "Sie haben die Note 5 erreicht.";
echo "Die Prüfung ist nicht bestanden!";
echo "Es besteht jedoch dei Möglichkeit einer Nachprüfung.";
echo "Bitte melden Sie sich zur Nachprüfung an.";
}

else
{
if ($ergebnis < 0.67)
{
echo "Sie haben die Note 4 erreicht.";
echo "Die Prüfung ist bestanden!";
}

else
{
if ($ergebnis < 0.81)
{
echo "Sie haben die Note 3 erreicht.";
echo "Die Prüfung ist bestanden!";
}


else
{
if ($ergebnis < 0.92)
{
echo "Sie haben die Note 2 erreicht.";
echo "Die Prüfung ist bestanden!";
}

else
{
echo "Sie haben die Note 1 erreicht.";
echo "Die Prüfung ist bestanden!?!";
}
}
}
}
}
}

?>



Ob es wirklich richtig weiß ich nicht aber es funktioniert schon mal.


Und nochmal Danke an alle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben