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
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?

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:

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