PHP MySql eine Spalte einer anderen Spalte zuordnen

Blechdose

Ensign
Registriert
Mai 2008
Beiträge
148
Hallo liebe Community,

ich google nun schon eine Weile herum, doch irgendwie komme ich zu keinem Ergebnis. Könnte auch sein, dass ich gar nicht weiß wonach ich genau suche...

Ich habe also eine Datenbank, in dieser Datenbank gibt es die Tabelle "test". In dieser Tabelle die Spalten "id", "fragen", "antworten".

Nun habe ich per php es schon hin bekommen, dass wenn man in eine Textbox einen Text eingibt, dieser mit der Datenbank überprüft wird.

Nun meine Frage, wie kann ich nun der 2. Spalte die 3. Spalte zuordnen, dass heißt wenn der Benutzer eine richtige Frage eintippt, dann auch die Antwort, die sich ja auf einer Zeile befinden ausgibt. Beide (also die Frage und zugehörige Antwort) haben ja die beiden ID's.

Oder ist das gar nicht möglich?
 
Hm, ich versteh nicht so ganz dein Problem. Du sagst dass du einen eingegebenen Text "überprüfst", was genau meinst du damit? Ich hätte gedacht dass du nach dem eingegebenen Text in der Spalte "Fragen" suchst, und dann die entsprechende Antwort als Rückgabewert lieferst. Das wiederum ist aber irgendwie das, nachdem du fragst.
So spontan hätte ich jetzt auf deine Frage geantwortet, du suchst nach
SELECT Antworten FROM Test WHERE Fragen = $frage;
 
Äh, wie jetzt?

ich bemühe jetzt mal meine Kristallkugel...

Wenn du auf die Datenbank bereits abfragst, dürftest du wahrscheinlich schon eine Datenbankabfrage alá
Code:
"Select id, frage, antwort from test where frage like 'Eine Frage';"
haben, damit hast du doch die Antwort bereits, du müsstest dann nur noch das Feld Antwort ausgeben.
Eventuell wäre es hilfreich wenn du den Teil des Quelltextes postest, dann wäre es einfacher was dazu zu sagen...

Der Datensatz ist ja immer zusammengehörend gespeichert (in einer Zeile hast du immer die Frage und die zugehörende Antwort)
 
Hum? Ganz einfach:

$test = doquery{"Select `Antwort` from {{table}} where Frage = '".$Post['Frage']." '","table",true)
if ($test['Antwort'] == $Post['Antwort'])
{mach weiter}

Syntaktisch garantiert falsch, aber es geht ja ums Prinzip ;-)
 
Okay um das klarer auszudrücken;
Ja der eingegebene Text wird durch die "Fragen" geschickt und anhand davon Sollte dann die Antwort beim Benutzer ankommen.
Damit "frage" ich das ab;
$sql="SELECT * FROM $tbl_name WHERE fragen='$userinput'";
Die Antworten habe ich hiermit versucht zu lösen;
$sqlanswer="SELECT * FROM $tbl_name";
$resultanswer=mysql_query($sqlanswer);
while($row = mysql_fetch_object($resultanswer))
{
echo "$row->antworten <br>";
}
Aber das gibt mir ja alle Antworten aus, sobald irgendeine Frage eingetippt wurde.
Vielen Dank schonmal für eure Bemühungen!
 
Du musst doch einfach nur den WHERE-Teil (aus deinem ersten Zitat) in den Code (zweites Zitat) einfügen, dann wird nur die Antwort genommen, die zu der entsprechenden Frage passt.
 
Sollte dann eigentlich mit diesem Code Block funktionieren

PHP:
$sql = "Select * from " . $tbl_name . " where fragen like '%" . $userinput . "%';";
$resultanswer = mysql_query($sql);
while ($row = mysql_fetch_assoc($resultanswer)){
    echo $row['fragen'] . ":" .  $row['antworten'];
}
Als Suchoperator solltest du besser like verwenden, mit den % Zeichen ermöglichst du es dann nach nur einen Keyword suchen zu lassen.
 
Zuletzt bearbeitet:
Okay vielen Dank nun geht es genauso wie ich es möchte.
 
Zurück
Oben