Problem bei MySQL

hallo,ich bin hier am verzweiflen,weil ich nicht weiter komme.

Das PROBLEM:

Ich muss über if kontrollieren ob der eingegebene Wert in der Datenbank enthalten ist.

Kann mir jn. helfen?

aber sicher doch:

<?php mysql_connect("localhost", "user", "passwort"); mysql_select_db("datenbank"); $a = $_POST["text"]; $b = "SELECT * FROM tabellen-namen WHERE spalte LIKE $a"; $b = mysql_query($b); while($c = mysql_fetch_object($b)) { if($b == $row->spaltenname) { //ist enthalten } } ?>
Erklärung:
hier wird davon ausgegangen, dass das vorgehende formular mit POST arbeitet.
das feld, in das der Wert eingegeben wird heisst hier text.
werte wie user passwort datenbank tabellen-namen spalte und spaltenname musst du noch entsprechend anpassen…
da if() in der while schleife steht, wir sie mit jedem wert überprüft, ob der wert in der datentabelle enthalten ist…

hoffe das hilft :wink:
mfg Joey

@bcg: Habe ich dir nicht schon mal gesagt, dass LIKE nur für Wildcards gebraucht wird? Hier z. B. ist es wieder falsch. Wenn man nach einem Wert sucht, benutzt man =.

hm…leider nicht,hier ist mein momentaner code:

formular:

<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>&nbsp;</td></tr> <tr><td>&nbsp;</td><td><input type="submit" value="Überprüfen" /> </form>

und dann noch:

[code]<?php

$host = ******
$user = *******
$pw = *******
$db = ********

 mysql_connect($host, $user, $pw) or die("Fehler beim Verbindungsaufbau: ".mysql_error());
mysql_selectdb($db) or die("Konnte Datenbank ".$db." nicht auswählen! Ursache: ".mysql_error());

$deutsch = $_POST['deutsch'];

$look = “SELECT Englisch FROM Vokabeln WHERE DEUTSCH =’$deutsch’” ;
$info = mysql_query($look) or die("Fehler: ".mysql_error());
$row = mysql_fetch_assoc($info);

?>
[/code]

wie muss es denn heißen?verzweifel&nicht durchblick

@srcam: öhm… nein glaube nicht, glaube du hast mal was von LIKE statt = gesagt, nicht umgekehrt…

ich würde es so machen:

$look = "SELECT * FROM Vokabeln WHERE Deutsch = $deutsch"; $info = mysql_query($look); while($row = mysql_fetch_object($info)) { if($row->Deutsch == $deutsch) { echo $row->englisch; $is = "i"; } } if(isset($is) == false) { echo "Es wurden keine übereinstimmenden Wörter gefunden..."; }
so würde es immer das englische wort für ein deutsches ausgeben und falls keine wörter gefunden werden, gibts den error aus
(was n assoc ist wusst ich nicht, deshalb hab ichs mit object gemacht)

hoffe das hilft

mfg Joey

und der gibt nix aus…

meinen Code hast du ja… o.O

der funzt au net

A: Ich habe ein Problem B: Worum gehts? A: Das Programm geht nicht! B: Welches Programm? A: Ihres! B: Ich habe mehrere geschrieben...Was geht denn nicht? A: Das Programm... B: Das sagten sie bereits! A: Warum fragen sie dann??

Ohne Worte…

nochmal eine deitallierte erläuterung:

ich hab das formular wo 2 eingabefelder sind.
dann soll überprüft werden ob $wert1 in der datenbank enthalten ist.
wenn ya,dann guckn ob $wert2 in der selben zeile (selbe id) ist…

aso…

vllt. ist das etwas was dir hilft:

<?php //mysql-connect usw... //... $eng = $_POST["englisch"]; $de = $_POST["deutsch"]; $mach = "SELECT * FROM `Vokabeln` WHERE `Deutsch` LIKE `$de`"; $mach2 = mysql_query($mach); while($row = mysql_fetch_object($mach2)) { if($row->deutsch == $de && $row->englisch == $eng) { echo "richtig!!"; $is = "1"; } } if(isset($is) == false) { echo "falsch!"; } //... ?>vllt. hifts…
hoffe es funktioniert auch :wink:
mfg Joey

1.is da n fehler

[quote]
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /users/rayvez/www/emaster/self.php on line 35[/quote]

&2. der soll net immer falsch sagen