Problem mit Variablen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
DnG
Mitglied
Beiträge: 132
Registriert: 15.06.2005 19:53
Wohnort: Bielefeld

Problem mit Variablen

Beitrag 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!
You think you've won,
and then it's all gone!
Benutzeravatar
Ivan
Mitglied
Beiträge: 267
Registriert: 28.12.2004 17:26
Wohnort: Mössingen, BW
Kontaktdaten:

Beitrag von Ivan »

Code: Alles auswählen

if ($_POST["name_des_input_felds"] == $englische Vokabel aus der DB)
{
  echo "Richtig";
}
else
{
  echo "Falsch";
}
Benutzeravatar
DnG
Mitglied
Beiträge: 132
Registriert: 15.06.2005 19:53
Wohnort: Bielefeld

Beitrag 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);


?>
You think you've won,
and then it's all gone!
Benutzeravatar
DnG
Mitglied
Beiträge: 132
Registriert: 15.06.2005 19:53
Wohnort: Bielefeld

Beitrag von DnG »

Keiner eine Idee, oder einen alternativen Ansatz? :cry:
You think you've won,
and then it's all gone!
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

[kb=knigge#bumping]Topic-Bumping[/kb]
KB:knigge
Benutzeravatar
DnG
Mitglied
Beiträge: 132
Registriert: 15.06.2005 19:53
Wohnort: Bielefeld

Beitrag 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);

?>
You think you've won,
and then it's all gone!
Antworten

Zurück zu „Coding & Technik“