bigo: prüfen ob eintrag vorhanden (SELECT)

hallo,

folgendes prob. :

ich möchte prüfen ob ein eintrag bereits vorhanden ist (wenn nicht, dann nicht neu eintragen...)

ok, hab das jetzt so :

$sql = "SELECT interpreter FROM $table_interpreter WHERE interpreter = $_POST['interpreter']";
$search_result = mysql_query($sql) or die ("error".mysql_error());

als fehlermeldung bekomme ich:
<--
errorYou have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
--->

schreibe ich das so:
$_POST[interpreter] //<----ohne hochkommas

bekomme ich
errorUnknown column 'test' in 'where clause'

die MySQL Version ist die : MySQL 4.0.15

uhm ..? sonntag morgen ?? , zu früh ?? zu spät ins bett ??
oder wie,...didn't get it ....

danke fürn tip
bigo

  1. hallo,

    folgendes prob. :

    ich möchte prüfen ob ein eintrag bereits vorhanden ist (wenn nicht, dann nicht neu eintragen...)

    ok, hab das jetzt so :

    $sql = "SELECT interpreter FROM $table_interpreter WHERE interpreter = $_POST['interpreter']";
    $search_result = mysql_query($sql) or die ("error".mysql_error());

    Hi,

    wie wärs mit

    $search_result = mysql_query($sql,$verbindung) or die("error".mysql_error()); ??

    Cu

    Nils

    1. Hallo Nils,

      $search_result = mysql_query($sql,$verbindung) or die("error".mysql_error()); ??

      das wird höchstwahrscheinlich keinen Unterschied machen, da die Verbindungskennung laut http://www.php.net/mysql_query optional ist.

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
      1. Hallo Nils,

        Hi Tobias!!

        $search_result = mysql_query($sql,$verbindung) or die("error".mysql_error()); ??
        das wird höchstwahrscheinlich keinen Unterschied machen, da die Verbindungskennung laut http://www.php.net/mysql_query optional ist.

        Hmm, da könnteste Recht haben :-) Aber ich machs immer mit Verbindungskennung und bei mir funzt es *g* und nen anderen Fehler hab ich da net gesehen *g* Es gab ja nen Syntaxerror. Naja, wieder was gelernt..

        Grüße aus Nürnberg
        Tobias

        Cu

        Nils

        1. hallo,

          danke für eure antworten!

          hab irgendwo gelesen das '$_POST[something]' in hochkommas muß, wenn tabelle "TEXT" ist dann läufts...

          ....auch wenn man sein posting nicht selbst beantworten sollte...ja ja ok, sorry...don't flame.

          gruß
          bigo

          1. hallo,

            danke für eure antworten!

            hab irgendwo gelesen das '$_POST[something]' in hochkommas muß, wenn tabelle "TEXT" ist dann läufts...

            Hmm wenn du es so siehst ^^ dann musst du eigentlich auch das something in " packen ^^

            '$_POST['something']^

            Naja, wie dem auch sei ^^ hauptsache es funzt

            CU

            Nils

  2. Hallo bigo,

    $sql = "SELECT interpreter FROM $table_interpreter WHERE interpreter = $_POST['interpreter']";

    da in $_POST['interpreter'] vermutlich ein String steht musst du diesen Wert mit ' umschließen:
    $sql = "[...] WHERE interpreter = '".$_POST['interpreter']."'";

    $_POST[interpreter] //<----ohne hochkommas

    das ist falsch: http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar

    errorUnknown column 'test' in 'where clause'

    das versteh ich jetzt aber auch nicht so ganz... was steht denn in $_POST['interpreter'] drin?

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo,

      $sql = "SELECT interpreter FROM $table_interpreter WHERE interpreter = $_POST['interpreter']";
      da in $_POST['interpreter'] vermutlich ein String steht musst du diesen Wert mit ' umschließen:
      $sql = "[...] WHERE interpreter = '".$_POST['interpreter']."'";

      Es sollte auch noch etwas einfacher gehen:

      $sql = "[...] WHERE interpreter = '$_POST[interpreter' ";

      $_POST[interpreter] //<----ohne hochkommas
      das ist falsch: http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar

      Nein! Wenn es zwischen doppelten Anfuehrungszeichen steht, ist es legal:
      http://www.php.net/manual/en/language.types.array.php#AEN3791

      <ZITAT>
      Note:  To reiterate, inside a double-quoted string, it's valid to not surround
      array indexes with quotes so "$foo[bar]" is valid.
      </ZITAT>

      errorUnknown column 'test' in 'where clause'
      das versteh ich jetzt aber auch nicht so ganz... was steht denn in $_POST['interpreter'] drin?

      Vermutlich stand eben "test" drin, und die Query wurde dann zu:
      "... WHERE interpreter = test ".

      Deshalb ist es oft hilfreich, wenn man sich mal die _fertige_ Query
      anzeigen laesst, die zu Problemen fuehrt, also:
      print($sql);
      Dann sieht das geuebte Auge z.B., dass da die Anfuehrungszeichen um
      den String fehlen.

      Gruesse,

      Thomas

      1. Hallo Thomas,

        $_POST[interpreter] //<----ohne hochkommas
        das ist falsch: http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar
        Nein! Wenn es zwischen doppelten Anfuehrungszeichen steht, ist es legal:
        http://www.php.net/manual/en/language.types.array.php#AEN3791

        ok, du hast recht - wieder was gelernt :-)

        errorUnknown column 'test' in 'where clause'
        das versteh ich jetzt aber auch nicht so ganz... was steht denn in $_POST['interpreter'] drin?
        Vermutlich stand eben "test" drin, und die Query wurde dann zu:
        "... WHERE interpreter = test ".

        ja, ich versteh nur nicht, warum die Fehlermeldung bei $_POST[interpreter] kommt, bei $_POST['interpreter'] aber nicht...

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|