php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-08-2003, 22:38
Phil98
 Newbie
Links : Onlinestatus : Phil98 ist offline
Registriert seit: Apr 2003
Ort: GT
Beiträge: 17
Phil98 ist zur Zeit noch ein unbeschriebenes Blatt
Phil98 eine Nachricht über ICQ schicken
Standard Problem mit SELECT, SUM und WHERE

Hallo,
ich habe ein kleines Problem mit einer Datenbank Abfrage.

Erstmal etwas zur Datenbankstruktur
In der Datenbanktabelle "bio_user" sind folgende, für meine Frage wichtige, Spalten enthalten:
  • id
  • betrag_meff
  • eingeloest
Nun zu meinem Problem
Ich wollte mit folgender Abfrage den Gesamtwert (von Spalte "betrag_meff") aller Zeilen, in denen eingeloest gleich "meff" ist, ermitteln:
PHP-Code:
$sql mysql_query("SELECT eingeloest SUM(betrag_meff) FROM bio_user WHERE $eingeloest='meff'"); 
$eingeloest_meff mysql_result($sql,0) or die (mysql_error());
echo 
$eingeloest_meff 
Ich erhalte allerdings immer einen MySQL-Error:
Code:
You have an error in your SQL syntax near 'SUM(betrag_meff) FROM bio_user WHERE ='meff'' at line 1
Für mich, mit meinen beschränkten PHP/SQL-Kentnissen, sieht das ganze so aus, als wenn "$eingeloest" erst garnicht gefunden wird...
Naja, finde leider keine Lösung und würde mich sehr über hilfreiche Antworten freuen!
cu phil.
__________________
:: [ vernetzt.es ] ::
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 11-08-2003, 22:42
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

WHERE $eingeloest='meff'" <--- FALSCH!!!

u hast doch keine spalte, die $eingeloest heißt!!!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 11-08-2003, 22:50
Phil98
 Newbie
Links : Onlinestatus : Phil98 ist offline
Registriert seit: Apr 2003
Ort: GT
Beiträge: 17
Phil98 ist zur Zeit noch ein unbeschriebenes Blatt
Phil98 eine Nachricht über ICQ schicken
Standard ???

...BITTE HELF MIR...

Ich kann ja jetzt völlig auf dem Schlauch stehen, aber ich habe doch eine Spalte "eingeloest". Hab ich doch auch geschrieben ... oder ... hab ich deinen Hinweis irgendwie nicht verstanden???

cu phil.
__________________
:: [ vernetzt.es ] ::
Mit Zitat antworten
  #4 (permalink)  
Alt 11-08-2003, 22:56
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

kein wunder, wenn du das $ in deinem code nicht siehst, dann wohl auch nicht in meinem Post, wa?

ich empfehle

user_sleep(10);
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 11-08-2003, 23:08
Phil98
 Newbie
Links : Onlinestatus : Phil98 ist offline
Registriert seit: Apr 2003
Ort: GT
Beiträge: 17
Phil98 ist zur Zeit noch ein unbeschriebenes Blatt
Phil98 eine Nachricht über ICQ schicken
Standard

OK. SORRY!
War ein langer Tag -> user_sleep(5);

Aber ich habe jetzt einfachmal das "$" entfernt, bekomme allerdings immernoch einen MySQL-Error:

Code:
You have an error in your SQL syntax near 'SUM(betrag_meff) FROM bio_user WHERE eingeloest='meff'' at line 1
Liegt das jetzt an meiner Dummheit, sprich "müsste der Code eigentlich funktionieren?" oder ist wirklich ein Fehler drin?
Wie schon gesagt bin noch Newbie, allso nicht hauen, wenn ich wieder einen dummen Fehler mache...

cu phil.


PS: Bin begeistert von deiner Reaktionsgeschwindigkeit. RESPEKT (4 min)
__________________
:: [ vernetzt.es ] ::
Mit Zitat antworten
  #6 (permalink)  
Alt 11-08-2003, 23:17
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

SELECT eingeloest SUM(betrag_meff) AS summe

versuchs mal so zu erweitern...

ansonsten mach mal mehrere Zeilen aus dem Query, dann wird der fehler schneller sichbar. ich brauche auch langsam schlaf.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 11-08-2003, 23:54
Phil98
 Newbie
Links : Onlinestatus : Phil98 ist offline
Registriert seit: Apr 2003
Ort: GT
Beiträge: 17
Phil98 ist zur Zeit noch ein unbeschriebenes Blatt
Phil98 eine Nachricht über ICQ schicken
Standard

So, jetzt doch noch eine Antwort...

Hab es nach deinem Vorschlag so versucht:
PHP-Code:
$sql mysql_query("SELECT eingeloest 
SUM(betrag_meff)
AS summe
FROM bio_user 
WHERE eingeloest='meff'"
); 
$eingeloest_meff mysql_result($sql,0) or die (mysql_error());
echo 
$eingeloest_meff 
Ergebnis:
Code:
You have an error in your SQL syntax near 'SUM(betrag_meff) AS summe FROM bio_user WHERE eingeloest='' at line 2
Dann hab ich es auch noch so versucht:
PHP-Code:
$sql mysql_query("SELECT eingeloest
SUM(betrag_meff)
FROM bio_user 
WHERE eingeloest='meff'"
); 
$eingeloest_meff mysql_result($sql,0) or die (mysql_error());
echo 
$eingeloest_meff 
Ergebnis:
Code:
You have an error in your SQL syntax near 'SUM(betrag_meff) FROM bio_user WHERE eingeloest='meff'' at line 2
Es scheint also an dieser Zeile zu liegen:
PHP-Code:
SUM(betrag_meff
Nur was ist daran falsch?
PHP-Code:
$sql mysql_query("SELECT SUM(betrag_meff) FROM bio_user"); 
$betrag_meff mysql_result($sql,0) or die (mysql_error());
echo 
$eingeloest_meff 
funktioniert nämlich problemlos...

Ich verbleibe hiermit in der Hoffnung auf Hilfe und ein bißchen Schlaf .
cu phil.
__________________
:: [ vernetzt.es ] ::
Mit Zitat antworten
  #8 (permalink)  
Alt 11-08-2003, 23:57
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

ich hatte das eingeloest in der ersten zeile nicht gesehen. du musst die spalten mit , trennen:

PHP-Code:
SELECTeingeloest,
SUB(tab) AS summe
FROM bla
WHERE x
=
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9 (permalink)  
Alt 12-08-2003, 00:07
Phil98
 Newbie
Links : Onlinestatus : Phil98 ist offline
Registriert seit: Apr 2003
Ort: GT
Beiträge: 17
Phil98 ist zur Zeit noch ein unbeschriebenes Blatt
Phil98 eine Nachricht über ICQ schicken
Standard

ok, da war ich mir nicht so sicher...
Habs jetzt so versucht, allerdings neuen Fehler (hoffentlich nerve ich dich noch nicht zu sehr):
PHP-Code:
$sql mysql_query("SELECT eingeloest, 
SUM(betrag_meff)
AS summe
FROM bio_user 
WHERE eingeloest='meff'"
); 
$eingeloest_meff mysql_result($sql,0) or die (mysql_error());
echo 
$eingeloest_meff
ERGEBNIS:
Code:
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
Ich kann allerdings nicht so genau sagen, was das heißen, bzw. was ich jetzt machen soll.
cu phil.
__________________
:: [ vernetzt.es ] ::
Mit Zitat antworten
  #10 (permalink)  
Alt 12-08-2003, 00:14
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

also, eingeloes liefert dir ja für jede db zeile ein ergebnis zurück. sum jedoch nur für die gesamte db ein einziges.

rein testweise mal das as summe weglassen.
oder mal group by eingeloest hinzufügen
oder mal group py 1 anhängen.

kann für nichts garantieren, ich bin total müde...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #11 (permalink)  
Alt 12-08-2003, 10:29
Phil98
 Newbie
Links : Onlinestatus : Phil98 ist offline
Registriert seit: Apr 2003
Ort: GT
Beiträge: 17
Phil98 ist zur Zeit noch ein unbeschriebenes Blatt
Phil98 eine Nachricht über ICQ schicken
Standard

So, mit ein bißchen Schlaf geht das ganze doch gleich viel besser...

Dank deines Tipps habe ich die Lösung jetzt doch noch gefunden:
PHP-Code:
$sql mysql_query("SELECT eingeloest, SUM(betrag_meff) AS summe FROM bio_user WHERE eingeloest='meff' GROUP BY eingeloest"); 
while (
$myrow mysql_fetch_array($sql)) { 
echo 
$myrow[summe];

Nochmal vielen Dank für deine nächtliche Hilfe!

cu phil.
__________________
:: [ vernetzt.es ] ::
Mit Zitat antworten
  #12 (permalink)  
Alt 12-08-2003, 10:34
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

sach ich doch...

kein problem. Support bei nacht kostet 3Geld35.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #13 (permalink)  
Alt 12-08-2003, 11:33
Phil98
 Newbie
Links : Onlinestatus : Phil98 ist offline
Registriert seit: Apr 2003
Ort: GT
Beiträge: 17
Phil98 ist zur Zeit noch ein unbeschriebenes Blatt
Phil98 eine Nachricht über ICQ schicken
Standard

OK! Für den Nachtservice zahle ich doch gerne...


Ich denke es müsste passen...

Kannst Dir ja ein Eis kaufen, bei der Hitze *schwitz*

cu phil.
__________________
:: [ vernetzt.es ] ::
Mit Zitat antworten
  #14 (permalink)  
Alt 12-08-2003, 11:53
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard



danke!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:09 Uhr.