php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.01.2012, 10:16  
Benutzer
 
Registriert seit: 09.01.2012
Beiträge: 41
PHP-Kenntnisse:
Anfänger
Riddler befindet sich auf einem aufstrebenden Ast
Standard Spalten verbinden !?

hallo,

ich kann meine frage leider nicht richtig beschreiben, darum probiere ich sie zu beschreiben

also...

ich habe eine tabelle mit 5 spalten (mitarbeiter,name,vorname,standort, projekte). ein mitarbeiter kann mehrer projekte haben, somit sind die ersten 4 spalten alle gelich und die 5te ändert sich nur, weil dort das andere projekt drin steht.

grafische sicht:

mitarbeiter | name | vorname | Standort | projekt
----------------------------------------------------------------
Mitarbeiter1 | Test1 | vname | Deutschland | projekt1
Mitarbeiter1 | Test1 | vname | Deutschland | projekt2
Mitarbeiter1 | Test1 | vname | Deutschland | projekt3
Mitarbeiter1 | Test1 | vname | Deutschland | projekt4

jetzt möchte ich irgendwie hinbekomme, dass er den mitarbeiter nicht 4x auflistet, sondern nur einmal, aber die projekte beispielweise hintereinander stehen

Bsp:
mitarbeiter | name | vorname | Standort | projekt
----------------------------------------------------------------
Mitarbeiter1 | Test1 | vname | Deutschland | projekt1,projekt2...

oder in einer neuen spalte. ist das irgendwie realisierbar ?

das problem ist, das es sich um quasi 2 tabellen handelt...siehe abfrage:

SELECT
tblMitarbeiter.MitarbeiterID,
tblMitarbeiter.Mitarbeiter,
tblMitarbeiter.Name,
tblMitarbeiter.Vorname,
tblMitarbeiter.Schreibrechte,
tblMitarbeiter.Standort,
tblProjekt.Projekt
FROM tblMitarbeiter
LEFT JOIN tblMitarbeiterProjekt ON tblMitarbeiter.MitarbeiterID = tblMitarbeiterProjekt.MitarbeiterID
LEFT JOIN tblProjekt ON tblMitarbeiterProjekt.ProjektID = tblProjekt.ProjektID ORDER BY Mitarbeiter

BITTE UM HILFE
p.s. benutze ich DISTINCT, dann ist zwar nur ein mitarbeiter sichtbar, jedoch auch nur mit einem projekt.
Riddler ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.01.2012, 10:21  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

http://goo.gl/izqt4
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.

Geändert von tr0y (09.01.2012 um 10:30 Uhr).
tr0y ist offline   Mit Zitat antworten
Alt 09.01.2012, 10:29  
Benutzer
 
Registriert seit: 09.01.2012
Beiträge: 41
PHP-Kenntnisse:
Anfänger
Riddler befindet sich auf einem aufstrebenden Ast
Standard

der artikel existiert nicht mehr @tr0y
Riddler ist offline   Mit Zitat antworten
Alt 09.01.2012, 10:30  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

nu aber.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 09.01.2012, 10:45  
Benutzer
 
Registriert seit: 09.01.2012
Beiträge: 41
PHP-Kenntnisse:
Anfänger
Riddler befindet sich auf einem aufstrebenden Ast
Standard

@tr0y

habe mir alles mal durchgelesen und sehr interessant...aber die Lösung ist leider nicht aufgeführt..
ich habe auch 2 tabellen. eine mit mitarbeiter und eine mit projekte.
so kann ich jedem mitarbeiter viele projekte zuweisen, aber für die ausgabe sieht es hässlich aus, da ja in der tabelle dann der mitarbeiter mehrfach aufgelistet wird, nur das projekt anders ist... wie ist das umsetzbar !?
Riddler ist offline   Mit Zitat antworten
Alt 09.01.2012, 10:48  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Entsprechend sortieren und nur einmal den Mitarbeiter ausgeben und dann in der Projektspalte entsprechend die Projekte ( per Zeile ) ?

Ist eher nen Ausgabeproblem, als nen SELECT-Problem.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 09.01.2012, 10:53  
Benutzer
 
Registriert seit: 09.01.2012
Beiträge: 41
PHP-Kenntnisse:
Anfänger
Riddler befindet sich auf einem aufstrebenden Ast
Standard

Ja genau...

Die Ausgabe ist das Problem. Aber da die ausgabe dynamisch ist, ist es da überhaupt möglich ?

hier mal mein Q-Code, hoffe ist minimal übersichtlich.

$ausgabe="<table id ='ausgabe_tbl' border='0' summary='Ausgabetabelle'>";
$ausgabe.="<tr><th>Mitarbeiter<a href='drucken.php?page=mitarbeiter_drucken'><img src='icons/print.gif' align='left' title='Zur Druckansicht' height='20' width='20'></th><th>Name</th><th>Vorname</th><th>Standort</th><th title='Pool Schreibrecht'>Pool</th><th>Schreibrechte f&uuml;r Projekte</th>";

while($zeile=mysqli_fetch_assoc($result))
{
ausgabe.="<tr style='background-color: ".$zebra."'><td>".$zeile['Mitarbeiter']."</td><td>".$zeile['Name']."</td><td>".$zeile['Vorname']."</td><td>".$zeile['Standort']."</td><td>".$zeile['Schreibrechte']."</td><td>".$zeile['Projekt']."</td>";

}

wie kann man das umschreiben ist dann wohl eher die frage
ist es möglich in eine die projekte duch kommas zu trennen oder hinten durch weitere spalten anzufügen ?
Riddler ist offline   Mit Zitat antworten
Alt 09.01.2012, 10:56  
Benutzer
 
Registriert seit: 09.01.2012
Beiträge: 41
PHP-Kenntnisse:
Anfänger
Riddler befindet sich auf einem aufstrebenden Ast
Standard

also so wäre schon super:

mitarbeiter | name | vorname | Standort | projekt
----------------------------------------------------
Mitarbeiter1 | Test1 | vname | Deutschland | projekt1 | projekt 2 | projekt3 ...

wie kann ich das umsetzen ? aufgrund des mysqli_fetch_assoc befehls ist das denn machbar ?
oder müsste ich anders herangehen ?
Riddler ist offline   Mit Zitat antworten
Alt 09.01.2012, 10:59  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Merk dir halt innerhalb der While die Felder die du "skippen" könntest..

PHP-Code:
$last false;
while ( 
$zeile mysqli_fetch_assoc($result) ) {
   
$current $zeile;
   
$project array_pop($current); // projekt holen

   // $zeile als Datenresource im $ausgabe-String nutzen !! nicht $current!
   
if ( $last == join($current) ) $ausgabe .= ' hier code ohne angabe des mitarbeiters ';
   else 
$ausgabe .= ' hier code mit angabe des mitarbeiters ';
   
$last join($current);

Edit: Wenn du beliebig viele Spalten bei den Projekten anlegen willst in der Tabelle musst du zuerst feststellen wieviel projekte es maximal darzustellen gibt und entsprechend die letzten zellen noch colspan'nen ( sowie das header-zellchen "Projekt". Rate ich aber von ab, das ist nur gekitte im Endeffekt. Da lieber eine Feste Zeile aggregieren und als Fließtext oder Fließende Div's ablegen, die blockweise das ganze darstellen ( in ordentlichen proportionen )

so ähnlich etwa.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 09.01.2012, 11:10  
Benutzer
 
Registriert seit: 09.01.2012
Beiträge: 41
PHP-Kenntnisse:
Anfänger
Riddler befindet sich auf einem aufstrebenden Ast
Standard

ich verstehe den code irgendwie nicht. vielleicht habe ich auch mein problem falsch beschrieben.

ich möchte nur solch eine ausgabe haben:

mitarbeiter | name | vorname | Standort | projekt
----------------------------------------------------
Mitarbeiter1 | Test1 | vname | Deutschland | projekt1 | projekt 2 | projekt3 ...


er soll mir die projekte in spalten anzeigen und nicht in zeilen wie hier:

mitarbeiter | name | vorname | Standort | projekt
----------------------------------------------------------------
Mitarbeiter1 | Test1 | vname | Deutschland | projekt1
Mitarbeiter1 | Test1 | vname | Deutschland | projekt2
Mitarbeiter1 | Test1 | vname | Deutschland | projekt3
Mitarbeiter1 | Test1 | vname | Deutschland | projekt4


die zuordnung undausgabe ist ja praktisch in ordnung, nur bin ich nicht in der lage die projekte in eine zeile zu bekommen, die alle dem mitarbeiter1 gehören.
Riddler 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
[Erledigt] spalten in php durch arrays sortieren lassen Dintar1989 PHP Tipps 2010 3 29.06.2010 15:32
CSS 2 spalten layout und php d3x PHP Tipps 2010 9 10.06.2010 20:51
2 Tabellen gleichzeitig abfragen (evtl. virtuell verbinden) Updated! WoHinDu Datenbanken 6 03.05.2010 20:43
SQL: Mehrere Spalten als eine Resultspalte selektieren und sortieren nach Buchstabe juice122 Datenbanken 11 29.04.2010 20:55
Spalten verbinden criminalogy Datenbanken 5 16.10.2009 23:17
[Erledigt] INSERT ... SELECT - nicht alle Spalten aus dem Select benutzen? kip Datenbanken 4 01.09.2009 13:06
PHP/Access - Anfrageergebnis mit gesammten Spalten oder als Objekt ? SkiD PHP Tipps 2009 3 15.08.2009 23:50
Mehrere Spalten in einer Zeile einer 2 Tabelle ketchup PHP Tipps 2009 5 28.04.2009 07:49
maximalwert aus mehreren Spalten obi PHP Tipps 2006 9 17.10.2006 12:55
Wie kann ich die Spalten einer Tabelle auslesen ? Datenbanken 0 31.10.2005 00:29
drei Spalten einer Tabelle zusammenfügen Lia PHP Tipps 2005-2 24 16.08.2005 15:58
spalten zählen mit ausnahmen Datenbanken 8 16.07.2005 13:04
Addieren von 3 Spalten, nach Ergebnis sortieren Datenbanken 11 15.06.2005 09:54
Spalten Dynamisch als Tabelle anzeigen lassen(Spalten ausl.) Cyberbob_at_tot PHP Tipps 2005-2 6 04.06.2005 22:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql spalten verbinden select, spalten verbinden 2010, select 4 spalten zusammenfassen, 2 zellen zusammenfügen in sql und komma getrennt

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