WinFuture-Forum.de: If-schleife Funktioniert Nicht ... ? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

If-schleife Funktioniert Nicht ... ?


#1 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 19. August 2006 - 07:55

Hallo liebe Community,

Ich progge für mich gerade ein Vokabeltester :)
Hab schon alles fertig. Alles funktioniert wunderbar bis auf die Prüfung ...
hier ein Codeausschnitt:

<?php

$zeil = $_POST['zeil'];
$vok = $_POST['vok'];

$fname = "vok.dat";
$fd = fopen ($fname, "r"); 

$ziel = false; 
$aktuelle_zeile = 0;

while (!feof($fd)&&($ziel==false)) { 
  if($aktuelle_zeile == $zeil){ 
	$meine_zeile = fgets($fd, 1000); 

	  $fnn=explode('|', $meine_zeile);
		$hm1=$fnn[0];
		$hm2=$fnn[1];

	$ziel = true; 

	 if($vok==$hm2) {
		 echo "<b>".$vok."</b> ist richtig!";
	 } else {
		 echo "<b>".$vok."</b> ist leider falsch!<br />";
		 echo "Richtig wäre: <b>".$hm2."</b>";
	 }
  } 
  else{ 
	$aktueller_text = fgets($fd, 1000); 
  } 
	$aktuelle_zeile++; 
}

fclose ($fd);

?>


Was nicht funktionier ist if($vok==$hm2) ...
Kann mir jemand da weiterhelfen? :D

Hier könnt ihr euch die Seite ansehn: klick

Danke im voraus!

Dieser Beitrag wurde von keny bearbeitet: 19. August 2006 - 07:59

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

Anzeige



#2 Mitglied ist offline   Morpheus3k 

  • Gruppe: aktive Mitglieder
  • Beiträge: 42
  • Beigetreten: 29. Dezember 03
  • Reputation: 0
  • Wohnort:Wien

geschrieben 19. August 2006 - 16:19

hi!

Ich hab mir deinen Quellcode mal angesehen! Ich muss zugeben, dass ich jetzt schon sehr lange nimma mit php programmiert habe, aber egal!

Ich weiß nimma, ob das in php geht, aber in C/C++ lässt sich ein String nicht durch den Vergleichsoperator "==" vergleichen!

In C ist es so, dass wenn du den Vergleichsoperator verwendest, schaust, ob es sich um ein und die selbe Variable handelt!... naja ist ja auch egal...

Jedenfalls solltest du eine String-Vergleichsfunktions verwenden! Dann wirst vermutlich kein Problem mehr haben!

Schau mal da rein: PHP.net - Strcmp

Das wird vermutlich dein Problem lösen!

mfg
Martin
0

#3 _BIGmo_

  • Gruppe: Gäste

geschrieben 19. August 2006 - 21:16

also der operator == müsste schon funktionieren, dran dürfte es eigentlich net liegen, was mir spontan aber noch einfallen würde, wäre da du da versuchst 2 unterschiedliche Datentypen zu vergleichen...
wobei ich das selbe problem habe wie morpheus... ich bin zur zeit mehr java aktiv von daher wäre es möglich das ich mich in deinem code ein bisschen verlesen habe ;)
0

#4 _rjchio_

  • Gruppe: Gäste

geschrieben 19. August 2006 - 22:07

Das liegt daran, dass am Ende des Strings $hm2 ein Zeilenumbruch ist.
Die wohl einfachste Lösung wäre:
<?php

$zeil = $_POST['zeil'];
$vok = $_POST['vok'];

$fname = "vok.dat";
$fd = fopen ($fname, "r");

$ziel = false;
$aktuelle_zeile = 0;

while (!feof($fd)&&($ziel==false)) {
  if($aktuelle_zeile == $zeil){
	$meine_zeile = fgets($fd, 1000);

	  $fnn=explode('|', $meine_zeile);
		$hm1=$fnn[0];
		$hm2=$fnn[1];

	$ziel = true;

	 if(trim($vok)==trim($hm2)) {
		 echo "<b>".$vok."</b> ist richtig!";
	 } else {
		 echo "<b>".$vok."</b> ist leider falsch!<br />";
		 echo "Richtig wäre: <b>".$hm2."</b>";
	 }
  }
  else{
	$aktueller_text = fgets($fd, 1000);
  }
	$aktuelle_zeile++;
}

fclose ($fd);

?>

Edit: Dein Script hat noch ein weiterer Fehler. So werden manchmal keine Vokabeln zum übersetzten angezeigt.

MfG rjchio

Dieser Beitrag wurde von rjchio bearbeitet: 19. August 2006 - 22:10

0

#5 Mitglied ist offline   Mufflon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 89
  • Beigetreten: 10. April 05
  • Reputation: 2

geschrieben 19. August 2006 - 22:30

naja die abfrage scheint auch noch nicht zu gehen xD also ob richtig oder falsch xD also ich finde das zeit = time richtig ist xD aber nette idee
time ist leider falsch!
Richtig wäre: time
0

#6 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 24. August 2006 - 01:04

rjchio Danke!
Es klappt - Ja ich weiss aber auch nicht woran das liegt. Aber ein Problem hab ich erkannt und zwar ist in der Datei mit den Vokabeln immer als letztens Zeichen ein Zeilenbruch und ich mach vor jeden neuen eintrag den Zeilenbruch vorne hin :8):

Danke nochmal

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0