ergebnis der if-abfrage wird nicht angezeigt

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
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

ergebnis der if-abfrage wird nicht angezeigt

Beitrag 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?
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Wann wird denn mal die Variable $wortart mit einem Wert belegt?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

Beitrag von langeweile »

ok danke, hab den fehler übrigens grad selbst gefunden, ich meld mich wenn es doch nicht gehen sollte
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Re: ergebnis der if-abfrage wird nicht angezeigt

Beitrag 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.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
langeweile
Gesperrt
Beiträge: 234
Registriert: 03.12.2006 14:48
Kontaktdaten:

Beitrag 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*
Antworten

Zurück zu „Coding & Technik“