sebastian1992: mySQL Fehler

Hallo,

habe hier ne SQL Abfrage, die einen Fehler hervorruft:
SELECT * FROM match WHERE time > '".time()."' ORDER BY time LIMIT 3

mysql_error() gibt dazu

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 'match WHERE time > '1223268570' ORDER BY time LIMIT 3' at line 1

aus.

Jetzt kann ich nur leider den Fehler nicht finden. Hier nochmal ein SQL Auszug:

-- phpMyAdmin SQL Dump
-- version 2.11.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 06. Oktober 2008 um 06:53
-- Server Version: 5.0.51
-- PHP-Version: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Datenbank: test
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle match
--

CREATE TABLE IF NOT EXISTS match (
  id int(11) NOT NULL auto_increment,
  team1 varchar(30) collate latin1_general_ci NOT NULL,
  team2 varchar(30) collate latin1_general_ci NOT NULL,
  time int(11) NOT NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;

--
-- Daten für Tabelle match
--

INSERT INTO match (id, team1, team2, time) VALUES
(1, 'Schweden', 'Italien', 1223293192),
(2, 'Russland', 'Tschechien', 1223293237),
(3, 'Lettland', 'Russland', 1223293297),
(4, 'Tschechien', 'Schweden', 1223293324);

Hoffe einer kann helfen, komme da echt nicht weiter.

Gruß Sebastian

  1. yo,

    warum nimmst du den für die speicherung von zeit einen INT datentyp, zumal time auch wohl auch ein reserviertes wort unter mysql sein wird.

    Ilja

  2. Hi,

    das liegt sicher daran, dass "match" eine MySQL-Funktion ist.
    Nenn die Tabelle um oder scheib sie in `
    dann sollte es gehn.

    Gruß

    1. das liegt sicher daran, dass "match" eine MySQL-Funktion ist.
      Nenn die Tabelle um oder scheib sie in `

      Dankeschön, das wars.

      @andere:

      auch Danke, das time ist kein Problem und das match reserviert ist, wusste ich niicht.

      und das time ein int ist, macht für mich sinn, da es ein timestamp wert ist und demnach auch der Vergleich sinn macht.

      1. und das time ein int ist, macht für mich sinn, da es ein timestamp wert ist und demnach auch der Vergleich sinn macht.

        es spricht doch nichts gegen den richtigen datentyp?

  3. Hi,

    SELECT * FROM match WHERE time > '".time()."' ORDER BY time LIMIT 3

    bist Du sicher, die Spalte mit dem Wert ".time()." vergleichen zu wollen? Das scheint mir ohnehin ein reichlich merkwürdiger Wert zu sein. Darüber hinaus ist es *NIE* sinnvoll, "*" zu selektieren.

    Jetzt kann ich nur leider den Fehler nicht finden.

    Dann solltest Du mal in der MySQL-Dokumentation nachlesen, wie man MATCH richtig verwendet - und/oder Tabellen und Spalten nicht nach Keywords des DBMS benennen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes