"Isch hätt da mal gerne ein kleines Problem."
btw. Ich habe mir schon wunde Finger gesucht und hab so viel Halbwissen gesammelt, dass ich jetzt Unterstützung benötige.
Bevor ich weiter auf den Fehler eingehe: Grundsätzlich funktioniert das Konstrukt - die Definition der Variable "$abfrage" und die Umsetzung in die "$sql" ist erst einmal nicht das Problem, wenn ich eine Tabelle "BB3_PROFILE_FIELDS_DATA" in meiner Datenbank habe. Dann bekomme ich beim Aufruf meiner .php-Datei den gewünschten Output.
Original heißt die Tabelle aber "bb3_profile_fields_data" - ein kleiner und doch großer Unterschied. Zum Code:
Code: Alles auswählen
$abfrage = 'SELECT DISTINCT user_id FROM bb3_profile_fields_data INNER JOIN bb3_profile_fields_lang ON bb3_profile_fields_data.pf_kfz_stat = bb3_profile_fields_lang.option_id + 1 WHERE bb3_profile_fields_lang.lang_value LIKE';
$sql = "$abfrage '462 auf MB, Modelljahr 1973 bis 1975'";
Code: Alles auswählen
Allgemeiner Fehler
SQL ERROR [ mysqli ]
Table 'sqldb1.BB3_PROFILE_FIELDS_DATA' doesn't exist [1146]
Gehe ich jetzt über phpmyadmin und kopiere die Tabelle "bb3_profile_fields_data" mitsamt Inhalt in eine neue Tabelle "BB3_PROFILE_FIELDS_DATA" funktioniert meine .php-Datei (ist ja logisch, weil die in der Fehlermeldung als fehlend angeprangerte Tabelle nun vorhanden ist).
Bitte keine Verweise auf "wie maskiere ich richtig" - ich habe sämtliche Kombinationen von " und ' und ` ausprobiert, nachdem ich hunderte von Anleitungen dazu gelesen habe. Ich habe bei meiner Recherche gefunden, dass irgendwas meine Tabellendefinition (in diesem Teil, fett rausgehoben: SELECT DISTINCT user_id FROM bb3_profile_fields_data INNER JOIN) in UPPER_CASE verwandelt. Ich könne dies unterbinden, wenn ich die Tabellendefinition mit Hochkommata maskiere.
Das hier
Code: Alles auswählen
$abfrage = 'SELECT DISTINCT user_id FROM "bb3_profile_fields_data" INNER JOIN bb3_profile_fields_lang ON bb3_profile_fields_data.pf_kfz_stat = bb3_profile_fields_lang.option_id + 1 WHERE bb3_profile_fields_lang.lang_value LIKE';
Welcher Profi und liebe Mensch hilft mir auf die Sprünge und schreibt mir diese eine Zeile Code richtig? Oder auch zwei Zeilen, wenn ich die "$sql = ..." mit einbeziehe.
Zwei Sachen noch:
1. Kopiere ich die folgende Anweisung in phpmyadmin in ein SQL-Fenster, bekomme ich das erwartete (richtige) Ergebnis
Code: Alles auswählen
SELECT DISTINCT user_id FROM bb3_profile_fields_data INNER JOIN bb3_profile_fields_lang ON bb3_profile_fields_data.pf_kfz_stat = bb3_profile_fields_lang.option_id + 1 WHERE bb3_profile_fields_lang.lang_value LIKE '462 auf MB, Modelljahr 1973 bis 1975';
Code: Alles auswählen
$sql = "SELECT DISTINCT user_id FROM bb3_profile_fields_data INNER JOIN bb3_profile_fields_lang ON bb3_profile_fields_data.pf_kfz_stat = bb3_profile_fields_lang.option_id + 1 WHERE bb3_profile_fields_lang.lang_value LIKE '462 auf MB, Modelljahr 1973 bis 1975'";