php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.11.2006, 21:21  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard Auswertung von Veranstaltungstabelle

Hallo,

ich habe eine schreckliche Tabelle von Familien, die sich für eine Veranstaltung angemeldet haben. Über diese muss ich eine Auswertung fahren.

Die Tabelle sieht unter anderem so aus:
id | nachname | vorname_mann | vorname_frau | vorname_kind1 | vorname_kind2 | vorname_kind3 | vorname_kind4

Ich muss jetzt herausfinden, wie viele Personen sich von einer Familie angemeldet haben. Wenn sich also nur die Frau und zwei Kinder angemeldet haben, müsste ich herausbekommen, dass sich drei Personen zur Familie xy angemeldet haben.

Ich habe folgendes versucht:
Code:
SELECT COUNT(DISTINCT `vorname_mann`) + COUNT(DISTINCT `vorname_frau`) + COUNT(DISTINCT `vorname_kind1`) + COUNT(DISTINCT `vorname_kind2`) + COUNT(DISTINCT `vorname_kind3`) + COUNT(DISTINCT `vorname_kind4`) 
FROM `anm_family`
WHERE `id`= '3'
jedoch klappt das nicht.
Hat jemand eine Idee, was ich noch versuchen könnte?
maeck ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.11.2006, 21:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Welchen Default-Wert hat die Spalte? NULL oder ist es ein Leer-String?
Zergling-new ist offline  
Alt 01.11.2006, 21:29  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard

wenn kein Name eingetragen ist, steht '' drin, also nichts, also leerstring (in dem Fall wäre wohl NULL angebracht gewesen, oder? -> bezogen auf den Thread Null oder not null)
maeck ist offline  
Alt 01.11.2006, 21:50  
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

Probier mal dies (ungetestet):
Code:
SELECT IF(`vorname_mann` <> '') ,1,0) + IF(`vorname_frau` <> '') ,1,0) + IF(`vorname_kind1` <> '') ,1,0) + IF(`vorname_kind2` <> '') ,1,0) ... FROM `anm_family`
Damit bekommst du bei Bedarf die Anzahl auch für alle Familien (wie im Bsp.)
nikosch ist offline  
Alt 01.11.2006, 22:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von maeck
wenn kein Name eingetragen ist, steht '' drin, also nichts, also leerstring (in dem Fall wäre wohl NULL angebracht gewesen, oder? -> bezogen auf den Thread Null oder not null)
Schade, denn mit NULL hättest du dieses Statement verwenden können
Code:
SELECT COUNT(vorname_mann) + COUNT(vorname_frau) + .. FROM anm_family
Denn COUNT() und SUM() zählen nur NOT NULL Spalten.

So musst du auf nikosch77 "häßliche" -dafür kann er ja nichts- Lösung zurückgreifen
Zergling-new ist offline  
Alt 01.11.2006, 22:33  
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

ich nehms nicht persönlich
Zitat:
Zitat von Zergling
Code:
SELECT COUNT(vorname_mann) + COUNT(vorname_frau) + .. FROM anm_family
ich dachte hier gehts um die summe der eigetragenen spalten einer zeile oder? Aber count () ist doch eine Gruppenfunktion gibt also die summe aller zeilen für die genannte spalte aus. deshlab ist die Lösung nur mit o.g. WHERE `id`= '3' sinnvoll. es sei denn, man will die summe aller teilnehmer haben.
nikosch ist offline  
Alt 01.11.2006, 23:07  
Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 70
shocky
shocky eine Nachricht über ICQ schicken
Standard

ehrlich gesagt würde ich ein script schreiben welches eine solche struktur erstellt:

Code:
TFamilie  
-----------------------------
| FamilieID | FamilienName |
-----------------------------
|   1       |    Bla       |


TPerson
---------------------------------
|FamilieID | PersonName |
---------------------------------
| 1        | du         |
---------------------------------
du Erstellst die zwei Tabellen und holst Schribst für jeden Datensatz in die Spalte FamilienName den namen und in PersonName die ID des FamilienNamens den du gerade geschrieben hast
shocky ist offline  
Alt 01.11.2006, 23:14  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Interessiert doch keine Sau ob Familie Schwentuchowski mit 5 Mann zum Event anrückt oder nur mit 3. Hauptsache das Büffet reicht für alle?
Hatte den OT so verstanden, dass der die Gesamt-Zahl sucht.

Was shocky vorschlägt weiß ich nicht, aber es gibt übrigens VIEWs seit MySQL 5:
Code:
CREATE VIEW `event_werkommtmitwievielen` AS SELECT family_id AS `familie`, IF(`vorname_mann` <> '') ,1,0) + IF(`vorname_frau` <> '') ,1,0) + IF(`vorname_kind1` <> '') ,1,0) + IF(`vorname_kind2` <> '') ,1,0) AS `anzahl`... FROM `anm_family`
Zugriff ganz normal, als wäre `event_werkommtmitwievielen` eine Tabelle:
Code:
SELECT SUM(`anzahl`) FROM `event_werkommtmitwievielen`
Zergling-new ist offline  
Alt 01.11.2006, 23:25  
Erfahrener Benutzer
 
Registriert seit: 28.06.2008
Beiträge: 259
maeck befindet sich auf einem aufstrebenden Ast
Standard

danke euch allen für die beiträge, werde das mal ausprobieren.
zur Klärung: ich muss wissen, mit wieviel Personen die Familie xy (z.B. id=3) angerückt ist. Das ist für so ne Steuerdingsbums-Sache wichtig
maeck ist offline  
Alt 01.11.2006, 23:36  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Interessiert doch keine Sau ob Familie Schwentuchowski mit 5 Mann zum Event anrückt oder nur mit 3.
Zitat:
ich muss wissen, mit wieviel Personen die Familie xy (z.B. id=3) angerückt ist.
Ups *g*
Zergling-new 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
Auswertung erstellen rezix PHP Tipps 2008 5 15.02.2008 17:58
Tabelle für einzelne Spieler und Auswertung ChrisV PHP Tipps 2006 5 11.03.2006 21:39
Auswertung einer Pulldownmenus PHP Tipps 2005-2 2 23.10.2005 12:47
Auswertung Server, Hosting und Workstations 4 23.07.2005 15:11
Auswertung von Multiple Select-Listen PHP Tipps 2005-2 4 11.07.2005 17:52
[Erledigt] Auswertung und Uebertragung von Werten in Links PHP Tipps 2005-2 0 15.06.2005 12:12
[Erledigt] Auswertung von Mehrfachauswahllisten Datenbanken 25 26.05.2005 15:12
Schleife in Formular Auswertung DDogg PHP Tipps 2005 2 20.04.2005 15:44
auswertung a la array PHP Tipps 2005 3 18.04.2005 14:08
auswertung checkbox ergibt "array" PHP Tipps 2005 11 08.02.2005 23:50
Fehlermeldung bei SQL Auswertung Datenbanken 8 18.01.2005 16:51
Formularübergab Auswertung mit $name oder mit $_POST['name'] PHP Tipps 2004 1 21.10.2004 21:05
Auswertung mit globalen Variablen duerov PHP Tipps 2004 4 07.09.2004 14:23
checkbox auswertung PHP Tipps 2004 1 31.08.2004 21:08
Smarty Templates + Radio Buttons + Auswertung Transmitter PHP-Fortgeschrittene 0 05.07.2004 18:29


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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.