Seite 1 von 1

Problem mit Variablen

Verfasst: 08.04.2006 22:56
von DnG
Und zwar dreht es sich um dieses kleine Projekt. Ich habe es nur so als Übung für mich gemacht.

Ich habe hier eine Datei, in der von der MySQL-Datenbank eine Tabelle generiert wird. Die MySQL-Tabelle hat zwei Spalten, in der Datei wird aber nur eine generiert, die Zweite soll der User ausfüllen. Anschlißend soll überprüft werden, ob seine Eingaben mit denen in der MySQL-Tabelle übereinstimmen.
Und nun geht das Problem los ;)
Die 2te Spalte hab ich mit input-Feldern versehen, die nach dem Inhalt der links von ihnen liegenden Spalte benannt sind. (Mir viel keien bessere Lösung ein).
Wie kann ich diese nun mit den richtigen Werten vergleichen?
THX schonmal für eure Mühe, ich weiß nämlich echt nicht mehr weiter!

Verfasst: 09.04.2006 08:39
von Ivan

Code: Alles auswählen

if ($_POST["name_des_input_felds"] == $englische Vokabel aus der DB)
{
  echo "Richtig";
}
else
{
  echo "Falsch";
}

Verfasst: 09.04.2006 11:24
von DnG
Hi Ivan!
Die if-Abrfage ist schon klar, aber soweit komm ich ja garnicht erst ^^
Ich weiß nicht wie ich "$englische Vokabel aus der DB" und "name_des_input_felds" abfragen soll, da diese Namen ja immer anders sind, man kann ja weitere Vokabeln in die DB eintragen.
Hier mal wie ich mir das in etwa vorstelle (verify.php):

Code: Alles auswählen

$db=mysql_connect("localhost", "blubb", "boing");
mysql_select_db("blubb");
$an="select Engl from trainer";
$englischeVokabel1=1ste Zeile aus der 2ten Spalte der Tabelle trainer (also Engl);
$englischeVokabel2=2te Zeile aus der 2ten Spalte der Tabelle trainer (also Engl);
$englischeVokabel3=3te Zeile aus der 2ten Spalte der Tabelle trainer (also Engl);
usw...
if ($_POST["name_des_input_felds"] == $englische Vokabel aus der DB) 
{ 
  echo "Richtig"; 
} 
else 
{ 
  echo "Falsch"; 
}
mysql_close($db);
Ich glaube das könnte sich mit einer for-Schleife lösen lassen, aber die verwirren mich im mom. noch :roll:

Hier grad noch der Code der Datei, wo der User Eingaben machen kann, die dann mit verify.php überprüft werden (testen.php):

Code: Alles auswählen

?php
$db=mysql_connect("localhost", "blubb", "boing");
mysql_select_db("blubb");
$machen="select Deut from trainer";
$ergebnis=mysql_query($machen);
$zahl=mysql_num_rows($ergebnis);
print("<p>");
print($zahl);
print(" Vokabeln werden überprüft.</p>");

print("<form name='Vokabeleingabe' action='verify.php' method='post'>");
print("<table border='1'><tr>");
$spaltenzahl=mysql_num_fields($ergebnis);
for($i=0;$i<$spaltenzahl;$i++) {
	print("<th>");
	print(mysql_field_name($ergebnis,$i));
	print("</th>");
	print("<th>Englisch</th>");
}
print("</tr>");
while($zeile=mysql_fetch_row($ergebnis)) {
	print("<tr align='center'>");
	for($i=0;$i<$spaltenzahl;$i++) {
		print("<td>");
		print($zeile[$i]);
		print("</td>");
		print("<td><input type='text' name='$zeile[$i]'/></td>");
	}
	print("</tr>");
}
print("</table><input type='submit' value='Überprüfen'/></form>");
mysql_close($db);


?>

Verfasst: 09.04.2006 19:02
von DnG
Keiner eine Idee, oder einen alternativen Ansatz? :cry:

Verfasst: 09.04.2006 19:33
von Pyramide
[kb=knigge#bumping]Topic-Bumping[/kb]

Verfasst: 10.04.2006 19:33
von DnG
Sry, kommt nich wieder vor!

Falls es wen interressiert: :D
Ich habe den Fehler entügltig gefunden

Das Problem war, dass ich sowohl bei der Englischen, als auch bei der Deutschen Spalte immer um eine Zeile weiter zählen musste. Das macht die for-Schleife. Deshalb brauch ich eigentlich EINE, die beides hochzählt ^^
Der ertige Code:
<?php

Code: Alles auswählen

$db=mysql_connect("localhost", "xxx", "xxxx");
mysql_select_db("xxx");

$ergebnis = mysql_query("select Deut from trainer");
$ergebnisa = mysql_query("select Engl from trainer");

while($zeile = mysql_fetch_row($ergebnis) and $zeilea = mysql_fetch_row($ergebnisa)) {

print("<div id='rahmen'>"); 

$spaltenzahl = mysql_num_fields($ergebnis);
$spaltenzahla = mysql_num_fields($ergebnisa);
for($i = 0, $ia = 0; $i < $spaltenzahl; $i++, $ia++) {

$Eingabe = $HTTP_POST_VARS[$zeile[$i]];

print("Gesucht: ");
print($zeile[$i]);
print("<br/>");

print("Eingabe: ");
print($Eingabe);
print("<br/>");

print("Lösung: ");
print($zeilea[$ia]);
print("<br/>"); 


if($Eingabe==$zeilea[$i]) {
print("<div id='right'>Korrekt</div>"); 
}
else {
print("<div id='false'>Leider falsch</div>"); 
}
}
print("</div>");
}
mysql_close($db);

?>