php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.10.2010, 10:52  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] PDO Problem mit einem einzigen Spaltennamen

Hallo Jungs

Ich muss einer Access Datebank ein Webinterface hinzufügen. Soweit funktioniert alles lediglich diese Zeile hier verursacht ein Problem:
PHP-Code:
$vol  $db->con->query($this->zahlungSQL." WHERE \"Auftrags-Nr\" = ".$auftrag["Auftrags-Nr."]); 
Dämlich von dem Typen einen Punkt im Spaltennamen zu verwenden aber das lässt sich leider nicht ändern. Wenn ich ein anderes Feld abfrage geht die Abfrage ohne Fehler:
PHP-Code:
$vol  $db->con->query($this->zahlungSQL." WHERE \"Kunden-Nr\" = ".$auftrag["Kunden-Nummer"]); 
Bei ersterem kommt allerdings folgender Fehler:

Code:
Fatal error: Call to a member function fetchAll() on a non-object in C:\xampp\htdocs\system\classes\salesreport.class.php on line 56
Lässt sich der Punkt im namen irgendwie escapen oder so?

Vielen Dank für die Inputs!
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.10.2010, 10:58  
Erfahrener Benutzer
 
Benutzerbild von PhillKill12
 
Registriert seit: 26.10.2008
Beiträge: 387
PHP-Kenntnisse:
Fortgeschritten
PhillKill12 befindet sich auf einem aufstrebenden Ast
PhillKill12 eine Nachricht über MSN schicken
Standard

versuch mal die spalte unter `` zu setzten ...
__________________
PHP-Code:
if ( $humans >= ) {
   
war ();

PhillKill12 ist offline  
Alt 12.10.2010, 10:58  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Wie wärs denn wenn du den Punkt einfach an beiden Stellen im Code setzt?
cycap ist offline  
Alt 12.10.2010, 10:59  
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

In Access werden die Tabellen in eckige Klammern geschrieben wenn ich mich nicht irre:
SELECT * FROM [my table name]
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 12.10.2010, 10:59  
Erfahrener Benutzer
 
Benutzerbild von PhillKill12
 
Registriert seit: 26.10.2008
Beiträge: 387
PHP-Kenntnisse:
Fortgeschritten
PhillKill12 befindet sich auf einem aufstrebenden Ast
PhillKill12 eine Nachricht über MSN schicken
Standard

Zitat:
In Access werden die Tabellen in eckige Klammern geschrieben wenn ich mich nicht irre:
SELECT * FROM [my table name]
stimmt ... ich hab iwie grad noch MySQL im kopf gehabt ..
__________________
PHP-Code:
if ( $humans >= ) {
   
war ();

PhillKill12 ist offline  
Alt 12.10.2010, 11:02  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Hi!

Danke für die Antwort. Das Problem hat sich gelöst, offenbar erstellt PDO bei fetchAssoc den Key im Array ohne Punkt. Wird also beim auslesen des Spaltennamens direkt ignoriert.

Grüsse

eXe

P.S.: Das ist gerade das schöne an PDO. Man kann selbst auf ODBC ganz normalen SQL Syntax nutzen. Macht die Sache viel einfacher als direkt mit odbc_connect etc. zu arbeiten!
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline  
Alt 12.10.2010, 11:07  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Trotz allem fehlt doch der Punkt in deiner WHERE-Clause oder nicht?
cycap ist offline  
Alt 12.10.2010, 11:22  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Nein, es ist so, ich habe in der Access folgende Tabellen:

T_Kunden
T_Auftrag
T_Zahlung

Das Webinterface soll als CRM Ergänzung, zur Access-Anwendung welche die Auftragsverwaltung darstellt, werden.

Und da der Herr welcher die Access Anwendung geschrieben hat sich nicht an Namensnormen gehalten hat heisst eben die Spalte mit der Auftragsnummer in der T_Auftrag Tabelle Auftrags-Nr. und in der T_Zahlung Auftrags-Nr

Ich brauche diese Funktion um den Umsatz der Kunden abzufragen. Vielleicht könnt ihr mir ja gleich noch eine Tipp dazu geben:

PHP-Code:
class salesreport extends reports {
    
    public 
$miniSales   '0';
    public 
$salesStart  '01.01.1990';
    public 
$salesEnd    '31.12.2030';
    
    
// Prepare all the Queryies
    
function __construct(){
        
// Start kunden table query
        
$this->kundenSQL "Select * from T_Kunden";
        
// Start zahlungen table query
        
$this->zahlungSQL "Select * from T_Zahlung";
        
// Start auftrag table query
        
$this->auftragSQL "Select * from T_Auftrag";
    }

    
// Get only private, business or both customer types
    
public function setCustomerTyp($typ){
        if(
$typ == 0){
            
$this->kundenSQL $this->kundenSQL ." WHERE \"Name der Firma\" IS NULL";
        }elseif(
$typ == 1){
            
$this->kundenSQL $this->kundenSQL ." WHERE \"Name der Firma\" IS NOT NULL";
        }
    }

    
// Returns all customers filtered by Typ
    
public function getCustomers(){
        try {
            
// Connect database
            
$db = new db_odbc();
            
// Get All the selected Customers
            
$sql $db->con->query($this->kundenSQL);
            
$this->customers $sql->fetchAll(PDO::FETCH_ASSOC);
            
$this->cCount count($this->customers);
            
// Now get all billing numbers
            
foreach($this->customers as $customer){
                
$auf  $db->con->query($this->auftragSQL." WHERE \"Kunden-Nummer\" = ".$customer['Kunden-Code']);
                
$aRes $auf->fetchAll(PDO::FETCH_ASSOC);
                
$cVolume 0;
                foreach(
$aRes as $auftrag){
                    
$vol  $db->con->query($this->zahlungSQL." WHERE \"Auftrags-Nr\" = ".$auftrag["Auftrags-Nr"]);
                    
$vRes $vol->fetch(PDO::FETCH_ASSOC);
                    
$cVolume $cVolume $vRes['Betrag'];
                }
                
$this->sales[] = array("customerID" => $customer['Kunden-Code'],
                                       
"sales" => $cVolume);
                echo 
$customer['Name der Firma']." hat einen Umsatz von: ".$cVolume.".-<br>";
            }
        }
        catch(
PDOException $e)
        {
            echo 
$e->getMessage();
        }
    }

    
// Now we work with our customer List on the jobs.
    
public function setSalesLimit($volume){
        
// Set minimum sales
        
$this->minSales $volume;
    }

    public function 
setSalesStart($date){
        
$this->salesStart $date;
    }

    public function 
setSalesEnd($date){
        
$this->salesEnd $date;
    }

    

__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline  
Alt 12.10.2010, 11:24  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

du hast Felder die "Name der Firma" heissen? oha, ok, hab nichts gesagt
cycap ist offline  
Alt 12.10.2010, 11:32  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
du hast Felder die "Name der Firma" heissen? oha, ok, hab nichts gesagt
Ich sag ja es ist die Hölle

Davon abgesehen was macht meine Klasse für nen Eindruck auf dich? Via Formular kann ich dann die Optionen setzen, nur Privatkunden, beide, Umsatz von mind. XXX in der und der Zeit Spanne etc.

Ist noch nicht ganz fertig implementiert, muss das Query auf die Rechnungen noch damit erweitern.
__________________
It's not a bug. It's a feature!
da.eXecutoR ist offline  
 


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
Problem beim Download Management mistermint PHP Tipps 2009 8 24.10.2009 11:34
Umlaut Problem nokieone PHP Tipps 2009 7 16.10.2009 19:30
[Erledigt] PDO Problem mit preparedStatements Hurricane PHP-Fortgeschrittene 1 20.02.2009 15:35
[Erledigt] Problem mit PDO und Firebird DB Stoggy Datenbanken 3 10.02.2009 11:04
Problem mit Basedir in PhP cmuch05 Datenbanken 9 08.01.2009 14:17
PDO Problem webbies PHP-Fortgeschrittene 4 17.12.2008 11:16
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
Timestamp problem phrain PHP Tipps 2008 2 04.04.2008 09:41
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
call to a member function fetchall() on a non-object, php pdo tabellen spalten namen auslesen, php fatal error call to a member function fetchall(), fatal error: call to a member function fetchall() on a non-object, \pdo spalten namen\, pdo call to a member function fetchall() on a non-object, php fatal error: call to a member function fetchall() on a non-object, php pdo firebird not working, pdo zeilen und spalten auslesen, pdo spaltennamen, pdo spalte fehlt, call to a member function fetchall(pdo::fetch_assoc) on a non-object in, php select pdo where einzelne zeile, pdo fetch spaltennamen, php pdo fetch() nicht für select, pdo nur spaltennamen, php pdo fetchall foreach nur eine zeile problem, pdo::fetch_assoc wird ignoriert, smarty \fatal error: call to a member function fetchall()\, php fatal error: call to a member function fetchall() on a non-object in

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:17 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