Problem bei Datenbankabfrage (prefix = '#')

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Muldini

Problem bei Datenbankabfrage (prefix = '#')

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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?
Muldini

Beitrag von Muldini »

Wenn ich 'like' durch '=' ersetze ändert sich nichts daran dass er die ID #_Zahl nicht findet.

Mfg
Muldini
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Welche Datenbank verwendest du denn?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Muldini

Beitrag von Muldini »

Ich verwende eine MySQL Datenbank, ich dachte man erkennt es am Code, sry.

Mfg
Muldini
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Muldini

Beitrag 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
Benutzeravatar
Fraenky
Mitglied
Beiträge: 111
Registriert: 31.07.2002 13:53

Beitrag von Fraenky »

Frage:
heisst deine Tabelle: 'tabelle' oder hast du das nur so angegeben? Oder hast du as '$' vergessen?
Muldini

Beitrag 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
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag 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
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Antworten

Zurück zu „Coding & Technik“