Seite 1 von 2

Problem bei Datenbankabfrage (prefix = '#')

Verfasst: 16.04.2003 19:14
von Muldini
Hallo,
ich habe mir eine Filmliste programmiert und bei Titeln die mit 0-9 anfangen bekommt der Film einen Index #_Zahl.
(Zahl steigt mit der Anzahl der Filme, logisch.)

Nun, das Problem entsteht beim Aufrufen der Details zu einem Film.

Code: Alles auswählen

$ab = "SELECT * FROM tabelle WHERE id like '$id'";
Wenn die id nun z.B. #_001 ist kann er nicht auf den Film zugreifen, bei der id A_001 funktioniert es jedoch einwandfrei.

Bitte keine Vorschläge wie "Nimm doch einen anderen Index", danke.

Mfg
Muldini

Verfasst: 16.04.2003 19:52
von Pyramide
Nimm doch = anstatt like, das ist ausserdem noch schneller. LIKE ist sowieso nur für Wildcard-Abfragen gedacht, also z.B. der Inhalt soll mit A beginnen, danach 2 beliebige Zeichen und dann ein D.

Ich frage mich, warum in letzter Zeit so viele Leute ihre SQL Bedingungen mit LIKE erstellen...gibt´s da irgendwo ein Tutorial, wo das so beschrieben ist?

Verfasst: 16.04.2003 20:00
von Muldini
Wenn ich 'like' durch '=' ersetze ändert sich nichts daran dass er die ID #_Zahl nicht findet.

Mfg
Muldini

Verfasst: 16.04.2003 21:30
von PhilippK
Welche Datenbank verwendest du denn?

Gruß, Philipp

Verfasst: 16.04.2003 21:35
von Muldini
Ich verwende eine MySQL Datenbank, ich dachte man erkennt es am Code, sry.

Mfg
Muldini

Verfasst: 16.04.2003 21:55
von PhilippK
Kannst du mal testweise was wie

Code: Alles auswählen

$ab = "SELECT * FROM tabelle WHERE id like '#_001'";
verwenden? Ich bin mir nicht so sicher, ob PHP oder MySQL der Verursacher ist.

Gruß, Philipp

Verfasst: 17.04.2003 10:10
von Muldini
Dabei kommt dann wie gehabt

Code: Alles auswählen

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in url/datei.php on line 7
Mfg
Muldini

Verfasst: 17.04.2003 10:24
von Fraenky
Frage:
heisst deine Tabelle: 'tabelle' oder hast du das nur so angegeben? Oder hast du as '$' vergessen?

Verfasst: 17.04.2003 10:56
von Muldini
Meine Tabelle heisst 'filmliste_$inhaber', ich habs weggelassen, damit es zu keinen Missverständnissen kommt.

Wie gesagt, es funktioniert bei jedem prefix (oder id) die mit einem buchstaben beginnt, nur die ids die mit einer # beginnen kann er nicht auslesen.

Mfg
Muldini

Verfasst: 17.04.2003 11:45
von itst
Das liegt an dem "#". Die Raute (oder auch Hash genannt) ist in MySql-Queries das Zeichen für einen Kommentar.

http://www.mysql.com/doc/de/Comments.html

Das bedeutet, das MySql Deine Query nach dem "#" abschneidet, weil es davon ausgeht, das alles, was danach kommt ein Kommentar ist.

HTH, Sascha