ottonormalverbraucher: /mysql

Mahlzeit,

warum bekomme ich immer folgende Fehlermeldung?

SELECT keyval, FROM uebersetzung
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM uebersetzung' at line 1
1064

function getTranslation()
{
 global $db;
 $db->select("keyval, $this->language", "uebersetzung", "", "", "", "", "");
 while($row = $db->fetch_array())
 {
  $this->aTrans[$row['keyval']] = $row[$language];
 }
}

Danke

--
ABSOLUT ANONYMES FILESHARING:
http://www.freenetproject.org/
ABSOLUT ANONYMER IRC CHAT:
http://www.invisiblenet.net/
  1. Halihallo ottonormalverbraucher

    SELECT keyval, FROM uebersetzung
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM uebersetzung' at line 1
    1064

    Kommas stehen nur _zwischen_ Attributen. Komma am Schluss ist Syntax-Error.

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
    1. Hi Phillip,

      Kommas stehen nur _zwischen_ Attributen. Komma am Schluss ist ...

      :-) Muß noch mal blöd nachfragen. Entweder sehe ich es nicht oder verstehe es nicht.
      Wo habe ich denn ein Komma am Ende?

      Danke

      ABSOLUT ANONYMES FILESHARING:
      http://www.freenetproject.org/

      ABSOLUT ANONYMER IRC CHAT:
      http://www.invisiblenet.net/

      1. Halihallo ottonormalverbraucher

        Kommas stehen nur _zwischen_ Attributen. Komma am Schluss ist ...
        :-) Muß noch mal blöd nachfragen. Entweder sehe ich es nicht oder verstehe es nicht.
        Wo habe ich denn ein Komma am Ende?

        Du schreibst:
           SELECT keyval, FROM uebersetzung
        richtig wäre:
           SELECT keyval FROM uebersetzung

        Viele Grüsse

        Philipp

        --
        RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
        Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
        1. Hi

          Du schreibst:
             SELECT keyval, FROM uebersetzung
          richtig wäre:
             SELECT keyval FROM uebersetzung

          Der soll doch 2 Spalten aus wählen. Sieh Dir mal die Funktion an die aufgerufen wird, dann wirst Du sehen warum ich es nicht verstehe.

          Es soltte ja folgendes dort stehen:

          SELECT keyval, de FROM ubersetzung

          function select($fields, $tables, $where = "", $order_by = "", $group_by = "", $having = "", $limit = "")
          {
              $sql_stat = "SELECT $fields FROM $tables ";

          if (!empty($where))
           {
               $sql_stat .= "WHERE $where ";
           }

          if (!empty($group_by))
           {
               $sql_stat .= "GROUP by $group_by ";
           }

          if (!empty($order_by))
           {
               $sql_stat .= "ORDER BY $order_by ";
           }
            if (!empty($having))
           {
            $sql_stat.="HAVING $having ";
           }

          if (!empty($limit))
           {
               $sql_stat.="LIMIT $limit ";
           }
           $this->db_result = mysql_query($sql_stat) or $this->error($sql_stat, mysql_error(), mysql_errno());
           $this->db_affected_rows = @mysql_num_rows($this->db_result);

          return $sql_stat;
          }

          Danke

          ABSOLUT ANONYMES FILESHARING:
          http://www.freenetproject.org/

          ABSOLUT ANONYMER IRC CHAT:
          http://www.invisiblenet.net/

          1. Hallo ottonormalverbraucher,

            Es soltte ja folgendes dort stehen:
            SELECT keyval, de FROM ubersetzung

            dann funktioniert dein $this->language nicht

            function select($fields, $tables, $where = "", $order_by = "", $group_by = "", $having = "", $limit = "")

            da nur die ersten zwei Parameter Pflicht sind, kannst du als Funktionsaufruf statt dem in [pref:t=58294&m=327115] auch einfach
             $db->select("keyval, $this->language", "uebersetzung",);
            schreiben.

            $sql_stat .= "ORDER BY $order_by ";
              $sql_stat.="HAVING $having ";

            damit produzierst du ungültiges sql - laut http://www.mysql.de/doc/de/SELECT.html gehört HAVING vor ORDER BY, nicht dahinter.

            Grüße aus Nürnberg
            Tobias

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

    function getTranslation()
    {
     global $db;
     $db->select("keyval, $this-yanguage", "uebersetzung", "", "", "", "", "");

    What are you doing her?

    Warum verwndest Du diese Syntax?
    $db-> Select...
    Warum machst Du Dir nicht erst einen vernünftigen SQL Striong und sendest diesen dann an die db?

    So meine ich:
    $sql="SELECT *FROM tabellenname WHERE ID="$id" ?

    while($row = $db->fetch_array())

    Was ist das was willst Du damit erreichen?

    {
      $this->aTrans[$row['keyval']] = $row[$language];

    Übersetze doch mal was hier steht!

    }
    }

    Wie gesagt eine sauber Codestruktur ist der beste Weg!

    TomIRL

    1. Hi,

      function getTranslation()
      {
      global $db;
      $db->select("keyval, $this-yanguage", "uebersetzung", "", "", "", "", "");

      What are you doing her?

      $db ist die Instanz der mysql Datenbank Wrapper Klasse.
      Die soll die Daten und Zustände kapseln.

      Warum verwndest Du diese Syntax?

      Damit ich das Datenbank Handling "modularisieren" kann.

      So meine ich:
      $sql="SELECT *FROM tabellenname WHERE ID="$id" ?

      So ist meine Funktion flexibler, finde ich.

      while($row = $db->fetch_array())
      Was ist das was willst Du damit erreichen?

      Die Ergebnisse werden in das Array $row gepackt

      $this->aTrans[$row['keyval']] = $row[$language];
      Übersetze doch mal was hier steht!

      Der in den Spalten eingetragen Daten werden zum Index des Arrays und der Inhalt der Spalte language wird zum Wert.

      Otto