/mysql
ottonormalverbraucher
- php
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
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
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/
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
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/
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
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
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