Seite 1 von 1

ergebnis der if-abfrage wird nicht angezeigt

Verfasst: 06.12.2006 16:21
von langeweile
es geht wieder mal um meinen lateincode, der mitlerweile so aussieht
(sry wegen dem langen code)

Code: Alles auswählen

<?php if(isset($_POST['latein'])) 
{ 
?> 
<?php 
include ("dbconnect.php"); 
$latein = $_POST['latein']; 
$deutsch = $_POST['deutsch'];
$worart = $_POST['wortart']; 
$user_deutsch = $_POST ['user_deutsch'];
$genus = $_POST['genus']; 
$genitiv = $_POST['genitiv']; 
$nominativ_m = $_POST['nominativ_m'];
$nominativ_f = $_POST['nominativ_f'];
$nominativ_n = $_POST['nominativ_n'];
$praesens_a = $_POST['praesens_a'];
$perfekt_a = $_POST['perfekt_a'];
$pvp = $_POST['pvp'];
$user_praesnes_a = $_POST['user_praesnes_a'];
$user_perfekt_a = $_POST['user_perfekt_a'];
$user_pvp = $_POST['user_pvp'];
echo "Deine Bedeutung war:";
if ($deutsch == $user_deutsch) 
{ 
echo "Richtig!!!"; 
} 
else 
{ 
echo "Falsch!!! (richtig wäre: $deutsch)"; 
}
?>
<br>
<?php
echo "Deine 1. Formangabe war:";
if ($wortart == "verb")
{
if ($praesens_a == $user_praesens_a)
{
echo "Richtig!!!";
}
else
{
echo "Falsch!!! (richtig wäre: $praesens_a)";
}
}
?>
<br>
<?php
echo "Deine 2. Formangabe war:";
if ($wortart == "verb")
{
if ($perfekt_a == $user_perfekt_a)
{
echo "Richtig!!!";
}
else
{
echo "Falsch!!! (richtig wäre: $perfekt_a)";
}
}
?>
<br>
<?php
echo "Deine 3. Formangabe war:";
if ($wortart == "verb")
{
if ($pvp == $user_pvp)
{
echo "Richtig!!!";
}
else
{
echo "Falsch!!! (richtig wäre: $pvp)";
}
}
?>
<?php 
} 
?> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method=post> 
</form> 
<?php 
include ("dbconnect.php"); 
$id = rand(1,1); //die 1 muss durch die anzahl der lateinvokabeln ersetzt werden 
$sql_update = "SELECT latein FROM Vokabeln WHERE id='$id'"; 
$sql_update_now = mysql_query($sql_update); 
$row = mysql_fetch_assoc($sql_update_now); 
$latein = $row['latein']; 
echo "Latein: $latein"; 
$sql_update2 = "SELECT deutsch FROM Vokabeln WHERE latein='$latein'"; 
$sql_update_now2 = mysql_query($sql_update2); 
$row = mysql_fetch_assoc($sql_update_now2); 
$deutsch = $row['deutsch']; 
$sql_update3 = "SELECT wortart FROM Vokabeln WHERE id='$id'"; 
$sql_update_now3 = mysql_query($sql_update3); 
$row = mysql_fetch_assoc($sql_update_now3); 
$wortart = $row['wortart']; 
$sql_update4 = "SELECT genitiv FROM Vokabeln WHERE id='$id'"; 
$sql_update_now4 = mysql_query($sql_update4); 
$row = mysql_fetch_assoc($sql_update_now4); 
$genitiv = $row['genitiv'];
$sql_update5 = "SELECT genus FROM Vokabeln WHERE id='$id'"; 
$sql_update_now5 = mysql_query($sql_update5); 
$row = mysql_fetch_assoc($sql_update_now5); 
$genus = $row['genus'];
$sql_update6 = "SELECT nominativ_m FROM Vokabeln WHERE id='$id'"; 
$sql_update_now6 = mysql_query($sql_update6); 
$row = mysql_fetch_assoc($sql_update_now6); 
$nominativ_m = $row['nominativ_m'];
$sql_update7 = "SELECT nominativ_f FROM Vokabeln WHERE id='$id'"; 
$sql_update_now7 = mysql_query($sql_update7); 
$row = mysql_fetch_assoc($sql_update_now7); 
$nominativ_f = $row['nominativ_f'];
$sql_update8 = "SELECT nominativ_n FROM Vokabeln WHERE id='$id'"; 
$sql_update_now8 = mysql_query($sql_update8); 
$row = mysql_fetch_assoc($sql_update_now8); 
$nominativ_n = $row['nominativ_n'];
$sql_update9 = "SELECT praesens_a FROM Vokabeln WHERE id='$id'"; 
$sql_update_now9 = mysql_query($sql_update9); 
$row = mysql_fetch_assoc($sql_update_now9); 
$praesens_a = $row['praesens_a'];
$sql_update10 = "SELECT perfekt_a FROM Vokabeln WHERE id='$id'"; 
$sql_update_now10 = mysql_query($sql_update10); 
$row = mysql_fetch_assoc($sql_update_now10); 
$perfekt_a = $row['perfekt_a'];
$sql_update11 = "SELECT pvp FROM Vokabeln WHERE id='$id'"; 
$sql_update_now11 = mysql_query($sql_update11); 
$row = mysql_fetch_assoc($sql_update_now11); 
$pvp = $row['pvp'];
?>
<br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method=post>Deutsch: 
<input type="text" size="50" maxlength="90" name="user_deutsch">
<?php
if ($wortart == "verb")
{
?>
<br>
1. Person Singular Präsens Aktiv:<input type="text" name="user_praesens_a" size="50" maxlength="90"><br>
1. Person Singular Perfekt Aktiv:<input type="text" name="user_perfekt_a" size="50" maxlength="90"><br>
1. Person Singular Vorzeitigkeit Passiv:<input type="text" name="user_pvp" size="50" maxlength="90"><br>
<?php
}
?>
<input type="hidden" size="50" maxlength="90" name="latein" value="<?php echo "$latein" ?>"> 
<input type="hidden" size="50" maxlength="90" name="deutsch" value="<?php echo "$deutsch" ?>"> 
<input type="hidden" size="50" maxlength="90" name="wortart" value="<?php echo "$wortart" ?>"> 

<input type="submit" value="Absenden"> 
</form>


Er funktioniert auch ohne Fehlermeldungen, aber wenn man etwas in dem formular eingbit und auf absenden klickt kommt:


Deine Bedeutung war:Richtig!!!
Deine 1. Formangabe war:
Deine 2. Formangabe war:
Deine 3. Formangabe war:

das mit der bedeutung geht, aber bei den 3 formeingaben steht weder war noch falsch, sondern einfach gar ncihts!!!
wieso?

Verfasst: 06.12.2006 16:51
von Miriam
Wann wird denn mal die Variable $wortart mit einem Wert belegt?

Verfasst: 06.12.2006 17:00
von gn#36
Ganz Einfach: Diese Texte werden auf jeden Fall ausgegeben, ob die Angabe richtig war oder nicht aber nur bei bestimmten Wortarten. Wenn die Wortart nicht stimmt wird also auch nichts ausgegeben. Du solltest diese Textausgaben mit in die If Bedingung einbauen, dann werden sie auch nur ausgegeben wenn es wirklich die Wortart ist.

Das zusätzliche Problem an der Geschichte ist, dass das Skript die Wortart überhaupt nicht kennt, daher wird es überhaupt nie zu einer Ausgabe kommen die nur bei Verben gemacht werden soll. Du musst also die Wortart im Skript bekannt machen (z.B. ebenfalls übergeben).

Du brauchst diese ganzen SQL Abfragen übrigens nicht einzeln machen, du kannst sie auch in einer Abfrage zusammenfassen:

Code: Alles auswählen

 SELECT feld1, feld2, feld3 FROM tabelle WHERE id = x 
Wenn du dann wie du es gemacht hast eine derartige Abfrage startest kannst du hinterher in der Variablen auf alle Felder zugreifen:

Code: Alles auswählen

$result = mysql_query("SELECT feld1, feld2, feld3 FROM tabelle WHERE id = $id "); 
$row = mysql_fetch_assoc($result);
echo $row['feld1']; //Hier steht der Inhalt des 1. Feldes
echo $row['feld2']; //Hier der des 2. Feldes
echo $row['feld3']; //Inhalt des 3. Feldes
Dann musst du nicht so ellenlange Befehlsketten schreiben.

Verfasst: 06.12.2006 17:06
von langeweile
ok danke, hab den fehler übrigens grad selbst gefunden, ich meld mich wenn es doch nicht gehen sollte

Re: ergebnis der if-abfrage wird nicht angezeigt

Verfasst: 06.12.2006 18:57
von mad-manne
langeweile hat geschrieben:(sry wegen dem langen code)
Hallo langeweile,
wie du schon selbst erkannt hast, ist es nicht erwünscht lange Codeblöcke im Beitrag zu posten. Im aktuellen Fall bewegst du dich grade eben so an der Grenze :roll:

In Zukunft längere Code-Blöcke oder ganze Dateien einfach verlinken. Siehe dazu:
KB:81

So long,
Manne.

Verfasst: 06.12.2006 19:17
von langeweile
ok, mitlerweile funzt es und ich habe noch so sehr viel hinzugefügt und der quelltext ist jetzt 5 mal so lang, aber alles geht *glücklich sei*