Anzeige

HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe | PSD-Tutorials.de

Erstellt von declaudi, 29.01.2009.

  1. declaudi

    declaudi Nicht mehr ganz neu hier

    Dabei seit:
    16.12.2008
    Beiträge:
    225
    Geschlecht:
    weiblich
    Ort:
    Markranstädt
    Software:
    CS3, hin und wieder auch mal Freehand MX
    Kameratyp:
    Canon EOS 3000V (mit Film)
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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!
     
    #1      
  2. HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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
    kannst du kürzer schreiben
    Damit sparst du dir, unzählige Klammern zu schließen.
     
    #2      
  3. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

    Die Klammer am Schluss ist fehl am Platz. Dies ist eine Zuweisung, keine Abfrage.
    PHP:
    1. $eingabe == $_GET["eingabe"];
    Hier wird falsch abgefragt, du meinst sicherlich $eingabe ... dann so:
    PHP:
    1. if ($eingabe < 0.67)
    Im Zusammenhang mit IF und ELSE könnte es dann so aussehen (Grundprinzip):
    PHP:
    1.  
    2. if ($eingabe < 0.35 ) {
    3.  // ausgabe
    4. } elseif ( $eingabe < 0.50 ) {
    5.  // ausgabe
    6. } else {
    7.  // nichts trifft zu
    8. }
    9.  
     
    #3      
  4. declaudi

    declaudi Nicht mehr ganz neu hier

    Dabei seit:
    16.12.2008
    Beiträge:
    225
    Geschlecht:
    weiblich
    Ort:
    Markranstädt
    Software:
    CS3, hin und wieder auch mal Freehand MX
    Kameratyp:
    Canon EOS 3000V (mit Film)
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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: 29.01.2009
    #4      
  5. tomtom

    tomtom css/cms-learning

    Dabei seit:
    15.08.2005
    Beiträge:
    702
    Geschlecht:
    männlich
    Ort:
    t:\huering\en
    Software:
    Photoshop*CS3*
    Kameratyp:
    Kodak DX4530 + Fuji FinePix 1000
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

    kann es sein das du zweimal die note 5 vergeben hast?
     
    #5      
  6. declaudi

    declaudi Nicht mehr ganz neu hier

    Dabei seit:
    16.12.2008
    Beiträge:
    225
    Geschlecht:
    weiblich
    Ort:
    Markranstädt
    Software:
    CS3, hin und wieder auch mal Freehand MX
    Kameratyp:
    Canon EOS 3000V (mit Film)
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    AW: HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe

    Hey tomtom,

    ja ist so - aber ich glaub das hätte nicht gehindert - trotzdem dankä
     
    #6      
  7. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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.
     
    #7      
  8. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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:)
     
    #8      
  9. declaudi

    declaudi Nicht mehr ganz neu hier

    Dabei seit:
    16.12.2008
    Beiträge:
    225
    Geschlecht:
    weiblich
    Ort:
    Markranstädt
    Software:
    CS3, hin und wieder auch mal Freehand MX
    Kameratyp:
    Canon EOS 3000V (mit Film)
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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: 29.01.2009
    #9      
  10. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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:
    1.  
    2. <?
    3. $GESAMT=35;
    4.  
    5. $NOTE[1]=92;
    6. $NOTE[2]=81;
    7. $NOTE[3]=67;
    8. $NOTE[4]=50;
    9. $NOTE[5]=37;
    10. $NOTE[6]=0;
    11.  
    12. $NOTE_TEXT[1]='sehr gut';
    13. $NOTE_TEXT[2]='gut';
    14. $NOTE_TEXT[3]='befriedigend';
    15. $NOTE_TEXT[4]='ausreichend';
    16. $NOTE_TEXT[5]='mangelhaft';
    17. $NOTE_TEXT[6]='ungenügend';
    18.  
    19. $NOTE_INFO[1]='Die Prüfung ist bestanden!';
    20. $NOTE_INFO[2]='Die Prüfung ist bestanden!';
    21. $NOTE_INFO[3]='Die Prüfung ist bestanden!';
    22. $NOTE_INFO[4]='Die Prüfung ist bestanden!';
    23. $NOTE_INFO[5]='Die Prüfung ist nicht bestanden!
    24.               Es besteht jedoch die Möglichkeit einer Nachprüfung.
    25.               Bitte melden Sie sich zur Nachprüfung an.';
    26. $NOTE_INFO[6]='Die Prüfung ist nicht bestanden!';
    27.  
    28. unset($PUNKTE);
    29. $INFOTEXT='';
    30. if(isset($_POST['eingabe']) && trim($_POST['eingabe'])!=''){
    31.    $PUNKTE=(float) str_replace(',', '.', $_POST['eingabe']);
    32.    if($PUNKTE>$GESAMT)unset($PUNKTE);
    33. }
    34.  
    35.  
    36.  
    37.  
    38. ?>
    39. <html>
    40. <head>
    41.         <title>Punktespiegel bei Tests</title>
    42. <style>
    43. table {
    44. border: 1px solid #768b5e;
    45. background-color: #a6c483;
    46. }
    47. .nonote{
    48. background-color: #c9d9b7;
    49. }
    50. .note{background-color: #a6c483;}
    51. </style>
    52. </head>
    53. <body>
    54. <h2> Punktespiegel bei Tests </h2>
    55. <table border="1px" width="500px">
    56. <tr class="nonote">
    57. <td> Gesamtpunkte </td>
    58. <td> <?echo $GESAMT;?> </td>
    59. <td> &nbsp;</td>
    60. <td> &nbsp;</td>
    61. </tr>
    62. <tr class="nonote">
    63. <td> Prozente </td>
    64. <td> ab Punkte </td>
    65. <td> Note </td>
    66. <td> Notenbezeichnung </td>
    67. </tr>
    68. <?
    69. while(list($k,$v)=each($NOTE)){
    70.       $s='nonote';
    71.       $p=round($GESAMT/100*$v,1);
    72.       if(isset($PUNKTE) && $PUNKTE>=$p){
    73.          $s='note';
    74.          $INFOTEXT=nl2br(htmlentities($NOTE_INFO[$k]));
    75.          unset($PUNKTE);
    76.       }
    77.       ?>
    78.       <tr class="<?echo $s;?>">
    79.       <td> <?echo $v;?>% </td>
    80.       <td> <?echo number_format($p, 1, ',','');?> </td>
    81.       <td> <?echo $k;?> </td>
    82.       <td> <?echo htmlentities($NOTE_TEXT[$k]);?> </td>
    83.       </tr>
    84.       <?
    85. }
    86. ?>
    87. </table>
    88. <?echo $INFOTEXT;?>
    89. <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST">
    90. <h5> Bitte geben Sie hier Ihre erreichten Punkte ein: </h5>
    91. <table>
    92. <tr class="nonote">
    93. <td><input type="text" name="eingabe" value=""></td>
    94. <td><input type="submit" name="erreichte_punkte" value="Note errechnen" /></td>
    95. </tr>
    96. </table>
    97. </form>
    98. </body>
    99. </html>
    100.  
     
    Zuletzt bearbeitet: 30.01.2009
    #10      
  11. declaudi

    declaudi Nicht mehr ganz neu hier

    Dabei seit:
    16.12.2008
    Beiträge:
    225
    Geschlecht:
    weiblich
    Ort:
    Markranstädt
    Software:
    CS3, hin und wieder auch mal Freehand MX
    Kameratyp:
    Canon EOS 3000V (mit Film)
    HILFE - Bis morgen verschachtelte if-Anweisung als Hausaufgabe
    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
     
    #11      
Seobility SEO Tool
x
×
×