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

Problem mit for-Schleife

Status
Für weitere Antworten geschlossen.

Lenchen

Neues Mitglied
Hallo

Ich habe vor ein paar Tagen angefangen mich etwas mit php zu befassen.
Als Übung habe ich angefangen ein kleines Kniffel-Spiel zu schreiben.
Hier habe ich das ganze mal hochgeladen
Kniffel
Es ist noch lange nicht fertig aber ich habe schon eine Frage.
Hier der Code der letzten Seite
PHP:
<html>
 <head>
  <title>Kniffel - Ergebnis</title>
  </head>
  <body>
<?php
$w1=$_POST[w1];
$w2=$_POST[w2];
$w3=$_POST[w3];
$w4=$_POST[w4];
$w5=$_POST[w5];

$ergebnis=$_POST[kn];
$eintrag=0;

$w=array($w1,$w2,$w3,$w4,$w5);
$i=0;



If ($ergebnis=="1er")
{
 for ($i=0; $i<5; $i++)
 {
  If ($w[i]== 1)
  { 
   $eintrag=$eintrag+$w[i];
  }
  else
  {
   $eintrag=$eintrag;
  }
 }
}
elseif ($ergebnis== "2er")
{
If ($w1== 2)
 { 
  $eintrag=$eintrag+$w1;
 }
 else
 {
  $eintrag=$eintrag;
 }
 If ($w2== 2)
 {
  $eintrag=$eintrag+$w2;
 }
 else
 {
  $eintrag=$eintrag;
 }
 If ($w3== 2)
 {
  $eintrag=$eintrag+$w3;
 }
 else
 {
  $eintrag=$eintrag;
 }
 If ($w4== 2)
 {
  $eintrag=$eintrag+$w3;
 }
 else
 {
  $eintrag=$eintrag;
 }
 If ($w5== 2)
 {
  $eintrag=$eintrag+$w5;
 }
 else
 {
  $eintrag=$eintrag;
 }
}
else
{
 echo "Keine 1er oder 2er gewählt";
}
echo "Bei den $ergebnis wurde $eintrag eingetragen";
?>
 </body>
</html>
Zuerst hatte ich die 1er und 2er beide wie die 2er programmiert, das klappt(e) auch, aber ich wollte den Code etwas verkleinern und habe versucht, die 1er in eine Schleife zu packen. Leider klappt das nicht. Das Ergebnis, wenn man 1er einträgt ist immer 0. Mit den 2ern klappt es, aber der Code ist so lang :(
Wenn ihr mir kurz auf die Sprünge helfen könntet, wär das sehr nett, ich habe gerade ein Brett vorm Kopf und sehe meinen Fehler nicht:(
 
Werbung:
Werbung:
gut, habe jetzt erst genauer hingesehen, deine schleife ist ja auch nicht richtig, $i ist der fehler.

PHP:
for ($i = 0; $i < 5; $i++)
{
  if ($w[$i] == 1)
  {
    $eintrag = $eintrag + $w[$i];
  }
}
das else { $eintrag = $eintrag; } braucht man nicht, eine if anweisung benötigt nicht unbedingt ein else.

soll $eintrag nur um 1 erhöht werden, kannst du das auch so notieren:
PHP:
for ($i = 0; $i < 5; $i++)
{
  if ($w[$i] == 1)
  {
    $eintrag++;
  }
}
 
Danke *an den Kopf schlag* jetzt seh ichs auch.
Das olle Dollarzeichen :lol:.
$eintrag++ habe ich mit absicht nicht geschrieben, denn so kann ich die Schleife einfach für die anderen Zahlen übernehmen, wo der Score dann ja um 2,3,4,5 erweitert werden soll.
Jetzt muss ich mir noch überlegen, wie ich die Päsche usw abfrage.
VIELEN DANK!
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben