php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.03.2009, 01:27  
Neuer Benutzer
 
Registriert seit: 17.02.2009
Beiträge: 9
Kronic73 befindet sich auf einem aufstrebenden Ast
Standard Where Anweisung vor GROUP BY einbinden.

Hallo,

wie kann ich meine WHERE Bedingung vor dem "Group by" Befehl einbinden.

PHP-Code:
$query "SELECT f.titel, f.spielzeit, f.studio, f.release, f.fsk, g.genre, r.reg, fi.inhalt, mm.cover, mm.trailer,
GROUP_CONCAT(distinct s.name SEPARATOR ', ') AS name
from film f 
INNER JOIN genre g ON f.genre_id = g.genre_id
INNER JOIN regisseure r ON f.reg_id = r.reg_id
INNER JOIN filminfo fi ON f.kb_id = fi.kb_id
INNER JOIN multimedia mm ON f.mm_id = mm.mm_id
INNER JOIN darsteller d ON f.film_id = d.film_id
INNER JOIN schauspieler s ON d.darsteller_id = s.darsteller_id
                        
-> Hier kommt die WHERE Bedingung hin
                        
group by f.film_id"
;

-> Die 
Bedingungen stehen aber hinter dem Group by

if ($t!="")
{
$bed_t="(f.titel like \"%$t%\")"$query .= " where $bed_t"$bed++;}
else {
$bed_t="";}

-> 
da kommen später noch weitere hinzu
Kann man innerhalb einer SQL Anweisung eine IF Anweisung einbinden?
Oder es mit include machen?

Komme da jetzt leider nicht weiter und bin verzweifelt.

Weil wenn ich die Anweisung unter MyPHP Admin im Xampp mit einem festen WHERE Wert z.Bsp '%gold%' vor dem Group by ausführe wird das ergebniss erfolgreich ausgegeben.

Könnt Ihr mir bitte helfen.
Dank im Voraus.

Gruß

Kronic

Geändert von nikosch (05.03.2009 um 23:36 Uhr).
Kronic73 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.03.2009, 01:40  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Die einfachste Lösung ist, dass Du group by f.film_id erst ganz am Schluss einfügst per $query.=" group by f.film_id"
David ist offline   Mit Zitat antworten
Alt 05.03.2009, 08:09  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

[MOD] Bitte Threat-Titel gemäß Forenregeln formulieren!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 05.03.2009, 22:14  
Neuer Benutzer
 
Registriert seit: 17.02.2009
Beiträge: 9
Kronic73 befindet sich auf einem aufstrebenden Ast
Standard

@dr.e.

Sorry, für nicht sehr angebrachten Thread namen. Kann man den irgendwie noch ändern mit [Problem] statt Benötige Hilfe!?

Gruß

Kronic
Kronic73 ist offline   Mit Zitat antworten
Alt 05.03.2009, 23:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Problem ist auch nicht besser. Jeder hat hier ein Problem.

[MOD: Titel editiert]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 06.03.2009, 01:21  
Neuer Benutzer
 
Registriert seit: 17.02.2009
Beiträge: 9
Kronic73 befindet sich auf einem aufstrebenden Ast
Standard

Also das mit der Group by Anweisung von David hat super geklappt.
DANKE

Sobald ich was in das Suchfeld eingebe z.Bsp gold, werden alle Einträge mit gold ausgeben.

Aber wenn ich das Script starte sollten alle in der Datenbank vorhanden Ergebniss ausgegeben werden.

Da kommt aber jetzt folgende Fehlermeldung:

FEHLER: SELECT f.titel, f.spielzeit, f.studio, f.release, f.fsk, g.genre, r.reg, fi.inhalt, mm.cover, mm.trailer, GROUP_CONCAT(distinct s.name SEPARATOR ', ') AS name from film f INNER JOIN genre g ON f.genre_id = g.genre_id INNER JOIN regisseure r ON f.reg_id = r.reg_id INNER JOIN filminfo fi ON f.kb_id = fi.kb_id INNER JOIN multimedia mm ON f.mm_id = mm.mm_id INNER JOIN darsteller d ON f.film_id = d.film_id INNER JOIN schauspieler s ON d.darsteller_id = s.darsteller_id verursachte folgenden Fehler: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Seltsames Problem?

David, hast du da vielleicht eine Idee?
Oder auch alle anderen User hier im Forum.

Gruß

Kronic
Kronic73 ist offline   Mit Zitat antworten
Alt 06.03.2009, 09:40  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kronic73 Beitrag anzeigen
Seltsames Problem?
So seltsam ist das gar nicht, da Abfragen mit Gruppenfunktionen zwingend ein GROUP BY verlangen.
Aber auch mit GROUP BY wirst du nicht genau die gewünschten Werte erhalten, da bei einer Abfrage mit GROUP BY alle Attribute, die nicht Gruppenfunktionen sind, auch in der GROUP BY-Klausel vorkommen müss(t)en. Die einzige Ausnahme sind Attribute, die immer exakt 1:1 von den angegebenen Gruppierungskriterien abhängig sind. Alles andere sind Zufallswerte, da die DB ja nicht wissen kann, welcher Wert gemeint ist.
Du wirst vermutlich nicht darum herumkommen, alle Werte abzufragen, und den Gruppenbruch/Gruppenwechsel selber zu programmieren.
__________________
Gruss
L
lazydog 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
Benötige Hilfe bei Lösungsansatz Bruno Datenbanken 4 26.11.2006 20:16
Hilfe: Zeitzone in WM Script mit date Anweisung einstellen hallohering PHP Tipps 2006 7 07.06.2006 11:05
Definieren von Blöcken und in Html einbinden! Brauche Hilfe. jf146 PHP Tipps 2006 3 01.04.2006 13:56
HILFE.....PHP in html einbinden????? PHP Tipps 2005-2 52 09.09.2005 10:43
PHP Join: Benötige Hilfe Datenbanken 5 04.09.2005 16:08
Wochenplan / Sendeplan - Hilfe benötige PHP Tipps 2005-2 7 13.08.2005 16:54
benötige php Hilfe PHP Tipps 2005-2 1 12.07.2005 12:23
Benötige Hilfe - Gästebuch erstellen (php, mysql) PHP Tipps 2005-2 20 02.07.2005 13:00
Benötige Hilfe zu einer Funktion PHP Tipps 2005 14 22.04.2005 21:27
Benötige Hilfe bei Installation von MyODBC Datenbanken 1 22.03.2005 16:28
Benötige Hilfe PHP Tipps 2004-2 7 14.12.2004 17:52
Benötige Hilfe bei Apache Server, Hosting und Workstations 5 17.11.2004 08:38
Benötige Hilfe bei Fehler in Bannerexchange-Script PHP Tipps 2004 4 30.10.2004 17:53
hilfe bei mysql in html einbinden Datenbanken 2 18.09.2004 00:29
Bildgalerie benötige hilfe PHP Tipps 2004 2 25.06.2004 17:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
inner join group by, inner join nach group by, t sql if einbinden, group by anweisung, group by ist nicht erlaubt hier, group by vor join, mixing of group columns (min(),max(),count(),...) with no group columns is illegal if there is no group by clausemixing of group columns (min(),max(),count(),...) with no group columns is illegal if there is no group by clause, if-anweisung in html einbinden, group by befehl, mixing of group columns (min(),max(),count(),...) with no group columns is illegal if there is no group by clause, where vor group by, group by vor where, anweisung vor., \mixing of group columns (min(),max(),count(),...) with no group columns is illegal if there is no group by clause\, where anweisung, php group by, group by neuester wert

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