php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.05.2011, 18:04  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Also ich hab das mit dem Alias hinzugefügt, ohne Veränderung.

Ich kann die Felder abrufen wenn ich nur auf einer Tabelle ein query durchführe und die Namen mit \"Name der Firma\" escape.

Das JOIN hat immernoch den Fehler:
Zitat:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 0 [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'tI.[Kunden-Code] = aI.[Kunden-Nummer] LEFT JOIN T_Auftragspositionen AS aP ON aP.[Auftrags-Nr] = aI.[Auftrags-Nr.]'. (SQLPrepare[0] at ext\pdo_odbc\odbc_driver.c:206)' in C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php:31 Stack trace: #0 C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php(31): PDO->query('Select kI.Anr...') #1 {main} thrown in C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php on line 31
Langsam bin ich am verzweifeln

Das join über "normale" Spalten kann ich nicht durchführen da alle Verbindungsschlüssel solch beschissene Namen haben.
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.05.2011, 18:24  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Okay jetzt hab ich das Query mal gekürzt. Ich könnte die Kundendaten auch nachher in einem seperaten Query auslesen, nicht schön aber auch nicht so tragisch.

Jetzt sieht das query wie folgt aus:

PHP-Code:
$sql $db->con->query("Select   aP.\"Art-Nr\" as artikel,
                                 aP.Positionstext as artikelText,
                                 aP.\"Auftrags-Nr\" as auftragNummer,
                                 aI.\"Auftrags-Nr.\",
                                 aI.\"Kunden-Nummer\" as kundenNummer,
                                 aI.Lieferdatum as lieferdatum
                          FROM
                                 T_Auftrag AS aI
                          LEFT JOIN
                                 T_Auftragspositionen AS aP
                          ON
                                 aP.\"Auftrags-Nr\" = aI.\"Auftrags-Nr.\""
); 
Und der Fehler hat sich verändert:

Zitat:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: -1002 [Microsoft][ODBC Microsoft Access Driver] Das Datenbankmodul kann '' nicht finden. Stellen Sie sicher, dass es sich um einen gültigen Parameter oder Alias-Namen handelt, der keine ungültigen Zeichen oder falsche Zeichensetzung enthält und dessen Name nicht zu lang ist. (SQLExecute[-1002] at ext\pdo_odbc\odbc_stmt.c:254)' in C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php:22 Stack trace: #0 C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php(22): PDO->query('Select aP."Ar...') #1 {main} thrown in C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php on line 22
Hat da jemand von euch ein Dejavu?
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline   Mit Zitat antworten
Alt 04.05.2011, 18:25  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Ok... noch eine Idee.

Hab mal alten Code durchforstet, die JOIN Syntax sieht etwas anders aus als bei MySQL (die Verschachtelung ist anders):

Bsp.:
Code:
SELECT 
  A.model_option_id,
  A.option_kind, 
  B.*, 
  C.iid AS group_iid,
  0 AS weight, 
  0 AS price 
FROM 
  t_model_options AS A 
INNER JOIN 
  (
  t_options AS B 
  LEFT JOIN 
    t_option_groups AS C 
  ON 
    B.group_id = C.group_id
  ) 
ON 
  A.option_id = B.option_id WHERE A.model_id = ...

Code:
Select kI.Anrede,
  kI.[Name der Firma],
  kI.Vorname,
  kI.Nachname,
  kI.E-Mail,
  aP.Art-Nr,
  aP.Positionstext,
  aP.[Auftrags-Nr],
  aI.[Auftrags-Nr.],
  aI.[Kunden-Nummer],
  aI.Lieferdatum
FROM
  T_Kunden AS tI
LEFT JOIN
  (T_Auftrag AS aI
   LEFT JOIN
   T_Auftragspositionen aP
   ON
   aP.[Auftrags-Nr] = aI.[Auftrags-Nr.]
  )
ON
  tI.[Kunden-Code] = aI.[Kunden-Nummer]
LIMIT 0, 10
Noch was, LIMIT kennt Access nicht... dort heisst es z.B. "SELECT TOP 10 FROM ..."

Kannste ja mal ausprobieren, viel schlimmer kann es eigentlich nicht mehr werden
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 05.05.2011, 11:12  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

So siehts zur Zeit aus:

PHP-Code:
$sql $db->con->query("Select kI.Anrede,
                              kI.[Name der Firma],
                              kI.Vorname,
                              kI.Nachname,
                              kI.[E-Mail],
                              aP.[Art-Nr],
                              aP.Positionstext,
                              aP.[Auftrags-Nr],
                              aI.[Auftrags-Nr.],
                              aI.[Kunden-Nummer],
                              aI.Lieferdatum
                            FROM
                              [T_Kunden] AS kI
                            LEFT JOIN
                              ([T_Auftrag] AS aI
                               LEFT JOIN
                               [T_Auftragspositionen] aP
                               ON
                               aP.[Auftrags-Nr] = aI.[Auftrags-Nr.]
                              )
                            ON
                              kI.[Kunden-Code] = aI.[Kunden-Nummer]"
); 
Zitat:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: -1002 [Microsoft][ODBC Microsoft Access Driver] Das Datenbankmodul kann '' nicht finden. Stellen Sie sicher, dass es sich um einen gültigen Parameter oder Alias-Namen handelt, der keine ungültigen Zeichen oder falsche Zeichensetzung enthält und dessen Name nicht zu lang ist. (SQLExecute[-1002] at ext\pdo_odbc\odbc_stmt.c:254)' in C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php:32 Stack trace: #0 C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php(32): PDO->query('Select kI.Anred...') #1 {main} thrown in C:\Websites\Systemmanagement\Website\comitis\syste m\services\nortonantivirus.php on line 32
Leider nicht. Ich glaube ich kapituliere und mach hald die Querys nacheinander. Langsam ist das nicht mehr wirtschaftlich

Oder haben wir im Forum noch einen Access Spezi der weiter weiss?

Grüsse

eXe
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline   Mit Zitat antworten
Alt 05.05.2011, 11:20  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Es ist nichts, was direkt mit PHP zu tun hat. Daher eventuell mal bei MSDN im Access-Forum nachfragen.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Alt 05.05.2011, 17:28  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von da.eXecutoR Beitrag anzeigen
... Ich glaube ich kapituliere und mach hald die Querys nacheinander.
So ähnlich: Versuch doch mal, den Query-String stückweise von klein auf aufzubauen. Also erst 'select * from [T_Kunden]' und dann immer wenig mehr dazunehmen, solange bis die (erste) Fehlermeldung kommt. So kannst du dich an die Stelle heranarbeiten, die Ärger macht.
fireweasel ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MSSQL Datenbank via ODBC - leeres Ergebnis baum132645 Datenbanken 6 21.04.2011 14:43
Problem mit Abfrage - join, inner join, distinct? Gachet01 Datenbanken 2 27.01.2011 06:49
Datenbank Abfrage einer Spalte MotteHH Datenbanken 9 12.01.2011 20:04
dynamische sql datenbank abfrage patrick146 JavaScript, Ajax und mehr 7 06.01.2010 16:10
Einfache Abfrage aus mySQL Datenbank Problem ThomasM PHP Tipps 2009 7 05.06.2009 21:06
datenbank abfrage mit php xstefxanx PHP Tipps 2009 11 04.04.2009 18:33
[Erledigt] Datenbank abfrage geordnet anzeigen Octavian PHP Tipps 2009 10 22.03.2009 15:39
Performance von INNER JOIN Abfrage erhöhen - Vorschläge? Timbob Datenbanken 8 05.03.2009 17:54
Kann nicht auf Datenbank mit ODBC zugreifen bettina Datenbanken 13 16.01.2009 18:02
OOP - Datenbank Abfrage ... 7Style PHP Tipps 2008 5 13.02.2008 13:28
INNER JOIN + Suchkriterien + Abfrage duerov PHP Tipps 2006 4 04.04.2006 12:47
ODBC Datenbank Anbindung & Access?! PHP-Fortgeschrittene 1 29.11.2005 14:53
datenbank Abfrage in Var schreiben web2 PHP Tipps 2005-2 3 22.07.2005 12:59
join abfrage bei der etwas nicht ausgegeben werden soll nautiluS Datenbanken 7 03.05.2005 09:54
SQL Abfrage mit LEFT JOIN -> OK, aber ich komm net weiter PHP-Fortgeschrittene 3 04.06.2004 00:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
access odbc kann nicht finden, fatal error: uncaught exception \'pdoexception\' with message \'sqlstate[42000], mysql odbc left join leer, [microsoft][odbc text driver] dessen name nicht zu lang, text driver, sytaxfehler in join, php odbc zwei left join, php mehrer abfragen über odbc, sqlstate 42000 mysql java, odbc join, pdo->query(\'select `text`,`...\') #1 {main} thrown in, msaccess odbc mysql server sql synthax error left join, oop php odbc, joinabfrage iunterschiedliche datenbanken, access abfrage auf odbc datenbank zugreifen, access odbc \left join\, [microsoft][odbc text driver] das datenbankmodul kann \'\' nicht finden., java access syntaxfehler (fehlender operator) in abfrageausdruck

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:50 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum