PHP&MySQL
Rayvez
- php
Sers,also ich habe ein Formular bestehend aus 2 Eingabefeldern(+submit).
Ich möchte,dass der $wert1 in der datenbank gesucht wird.ist dieser vorhanden,soll geguckt werden,ob $wert2 dieselbse id wie $wert1 hat(also hund-dog).
bitte helfen
MfG rayvez
Hello,
Sers,also ich habe ein Formular bestehend aus 2 Eingabefeldern(+submit).
Ich möchte,dass der $wert1 in der datenbank gesucht wird.ist dieser vorhanden,soll geguckt werden,ob $wert2 dieselbse id wie $wert1 hat(also hund-dog).
Und woher kommt die ID für Wert 2?
Soll danach auch in der Datenbank gesucht werden?
Es sollen also zwei Werte in einer Datenbankspalte gesucht werden und dann deren Primärschlüssel verglichen werden? Nun steht natürlich zu vermuten, dass die Werte in den Spalten mehrmals vorkommen können, denn sonst wären sie ja selber Primärschlüssel.
Formulieren wir also nochmal neu:
Es sollen alle Treffer für Wert 1 in Spalte X.1 einer Tabelle X gesucht werden und es sollen alle Treffer für Wert 2 in Spalte X.1 einer Tabelle Y gesucht werden. Die Primärschlüssel dieser Einträge sollen auf Gleichheit verglöichen werden.
Nun überlegen wir mal, ob das nicht die Datenbank ganz alleine kann:
$wert1 = mysql_real_escape_string($wert1, $con);
$wert2 = mysql_real_escape_string($wert2, $con);
$sql = "Select a.id, b.id ".
"from $tablename1
a, $tablename2
b".
"where a.$spalte1
= $wert1
".
" and b.$spalte2
= $wert2
".
" and a.id = b.id";
Wenn Du das nun auswertest, müsstest Du die IDs der Datensätze bekommen, für die es sowohl in der einen als auch in der anderen Tabelle Einträge gibt.
Ein harzliches Glückauf
Tom vom Berg
ähm...tut mir leid,ich habs jetzt nicht ganz verstanden,also mein formular sieht wie folgt aus:
<table>
<form action="#" method="post">
<tr><td><label>Deutsch:</label></td>
<td><input type="text" name="deutsch" /></td></tr>
<tr><td><label>Englisch:</label></td><td>
<input type="text" name="englisch" /></td></tr>
<tr><td> </td></tr>
<tr><td> </td><td><input type="submit" value="Überprüfen" />
</form>
</table>
es soll in der datenbank Vokabeln überprüft werden,ob die eingegebenen werte bereits existieren(in der tabelle vorhanden) und dann ob der zugehörige englische begriff stimmt.
verstanden?(hoffe ich doch^^ )
MfG Rayvez
Hello,
Dein Formular ist in der Abteilung PHP oder Datenbank in diesem Zusammenhang vollkommen belanglos.
Das kannst Du posten, wenn Du mit HTML Probleme hast. Wichtig ist nur, dass die richtigen Dialogelemente gewählt wurden und die Namen bekannt sind.
es soll in der datenbank Vokabeln überprüft werden,ob die eingegebenen werte bereits existieren(in der tabelle vorhanden) und dann ob der zugehörige englische begriff stimmt.
Hast Du überhaupt schon mal mit der Datenbnak gearbeitet?
Weißt Du, wie man aus PHP heraus eine Verbindung dazu aufbaut?
Weißt Du was ein Primärschlüssel, eine Spalte, ein Spaltentyp sind?
Weißt Du, wie man ein SQL-Query fomruliert und wie man dann das Ergebnis mit PHP auswerten kann?
verstanden?(hoffe ich doch^^ )
Nein.
Ein harzliches Glückauf
Tom vom Berg
zu all deinen fragen: JA!
ich weiß nur nicht wie ich das jetzt machen muss,damit es kontrolliert wird...
Hello,
ich weiß nur nicht wie ich das jetzt machen muss,damit es kontrolliert wird...
Du müsstest aber schon ein bisschen mehr über Deine Datenbankstruktur erzählen.
Welche Tabellen hast Du?
Welche Namen tragen die?
Was ist ihre Aufgabe?
Welche Spalten haben sie?
Welche Contraints liegen auf den Spalten? (Constraint ist englisch und bedeutet was?...)
Und wenn Du nun schon mal bei Beolingus bist, dann wirst Du Dir vorstellen können, dass die das da nicht mit einer einzigen Tabelle abwickeln.
Welche Relationen bestehen also zwischen Deinen Tabellen?
Ein harzliches Glückauf
Tom vom Berg
also: ich habe eine tabelle namens Vokabeln.
die besteht aus 3 spalten:
ID|Deutsch|Englisch
Deutsch beinhaltet die deutschen begriffe/ausdrücke
Englisch die übersetzungen
Und die eingaben mittels formular sollen mit den (falls) vorhandenen werten in der datenbank abgeglichen werden.
Hello,
ID|Deutsch|Englisch
Deutsch beinhaltet die deutschen begriffe/ausdrücke
Englisch die übersetzungenUnd die eingaben mittels formular sollen mit den (falls) vorhandenen werten in der datenbank abgeglichen werden.
Was bedeutet "abgeglichen werden"?
Willst Du nur wissen, ob es ein im Formular eingegebenes Pärchen $deutsch - $englisch gibt, oder willst Du es, falls es nicht existiert, eintragen, oder willst Du, falls einer der Begriffe vorhanden ist den anderen dazu suchen?
Beschreibe die Aufgabe doch nochmal mit ganz normalen alltäglichen Worten.
$sql = "Select * from Vokabeln
where Deutsch
= '$deutsch' and Englisch
= '$englisch'";
würde Dir dann bei Ausführung den (oder die) Datensätze liefern, bei denen die Paarung übereinstimmt. Die Werte von außen ($deutsch, $engisch) habe ich _vorher_ mit mysql_real_escape_string() behandelt.
Ein harzliches Glückauf
Tom vom Berg
also ich hab ein mini-formular:
eingabefeld für deutsch & eingabefeld für englisch
dort gibt man z.B. hund & dog ein
anschließend soll in meiner datenbank geguckt werden ob dieses "paar" exisitert(dann soll gesagt werden ob die übersetzung richtig ist)
also so:
feld: hund feld:dog
Hund auf englisch heißt dog.Richtig!
feld: hund feld: hymmy
Hund auf englisch heißt nicht hymmy.Falsch!
Richtig wäre dog.
so vom prinzip soll es funktionieren