Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Tabelle generieren mit Daten aus DB

Mitglied: Jon

Jon (Level 1) - Jetzt verbinden

20.05.2008, aktualisiert 13:40 Uhr, 3979 Aufrufe, 2 Kommentare

Hallo zusammen, ich hoffe jemand kann mir bei einer DB-Abfrage helfen.

Folgendes Konstrukt:
PHP5, MySQL5.x

Datenbank (die relevanten felder):
kurs > kursid | kursnummer | kursname
termine > terminid | kursid | kursdatum
buchung > buchid | terminid

Wie ihr sehen könnt gibt es erst mal verschiedene Kurse, die sich wiederum in verschiedene Termine aufspalten.
Die Termine sind dabei mit kursid an den Kurs verknüpft, die einzelnen Buchungen mit terminid an die Termine.

Was ich jetzt brauche: Eine Matrix, wo nach x die Kurse aufgeführt sind und nach y die Termine.
Als Daten sollen dann die Anzahl der Buchungen stehen.

$x = $db->query("SELECT k.*, t.* FROM kurs k, termine t WHERE k.kursid = t.kursid ORDER BY k.kursnummer");
while ($row = $db->fetch_array($x)){
list($buchcount)=$db->query_first("SELECT COUNT(*) FROM buchung WHERE terminid = $row[terminid]");
echo ("$row[ksnr] > $row[kdate] > $buchcount <br>");
}

Ausgabe:

102030 > 2008-10-11 > 4
102030 > 2008-09-23 > 3
102030 > 2008-10-14 > 0
102030 > 2008-10-15 > 0
102031 > 2008-10-12 > 2
102032 > 2008-10-08 > 1
102032 > 2008-10-12 > 1
102032 > 2008-10-13 > 0



Diese Abfrage funktioniert ja schon mal ganz gut. Nur komm ich jetzt nicht klar, das ganze in eine Tabelle nach oben genannten Kriterien zu werfen. Ich hab dazu schon mehrere while-schleifen versucht, mehrdimensionale Arrays, aber ich bekomm die Ausgabe in eine Tabelle einfach nicht hin.



Ich hoffe ihr wisst ungefähr was ich meine und habt einen Lösungsvorschlag für mich.

Vielen Dank schon mal fürs Ansehen.

mfg
Jon
Mitglied: bytecounter
20.05.2008 um 13:31 Uhr
Hallo,

nun hatte ich das alles schön aufgeschrieben und dann schmeisst mich administrator.de raus (neue Passworteingabe nach dem Absenden und die POST-Daten natürlich futsch *grrrr*).

Daher nochmal auf die Schnelle, ich hoffe, es ist verständlich:

Du kannst über ein mehrdimensionales Array arbeiten:
$tabelle[$zeile][$spalte]

Als erstes die Kopfzeile erzeugen (alle Kurse), 1. Spalte bleibt frei, da diese ja das Datum beinhaltet.
Dann die Datums (ich weiss, das ist sprachlich falsch, aber "Daten" wäre hier irreführend ) in
$tabelle[$zeile][0] speichern

Darauf eine verschachtelte foreach:
foreach zeile {
foreach $spalte {
und hier die DB-Abfrage über Spalten- und Zeilenname
}
}


Das Ganze ist lediglich als Ansatz zu verstehen. Bei vielen Terminen/Kursen wäre das aber ziehmlich Ressourcenfressend. Allerdings müsste man dann schon bei dem vorhandenen DB Design anfangen zu überarbeiten.

vg Bytecounter
Bitte warten ..
Mitglied: Jon
20.05.2008 um 13:40 Uhr
Vielen Dank für den Denkanstoß.
An der Datenbank kann ich nichts ändern, die besteht leider schon und ist mit einer Menge an Daten gefüllt.

Ich hab gerade gesehen, das die DB auch von außen angesprochen werden darf. Mit Access hab ich jetzt über den MyODBC-Treiber die Tabellen eingebunden und eine Kreuztabellenabfrage gemacht. Funktioniert wunderbar
Da es sich hierbei nur um eine interne Auswertung handelt, könnte ich auch damit leben. Mal sehen, ob der Kunde auch damit leben kann... Dafür mach ich ihm ein paar Abfragen extra, mit Access ja kein Problem *hehe*

Danke nochmal für deine Idee!
Bitte warten ..
Ähnliche Inhalte
Peripheriegeräte
Vorteile von E-Dat Patchfeldern
Frage von questioPeripheriegeräte10 Kommentare

Hallo, hat jemand von euch Erfahrung mit verschiedenen Arten Patchfeldern / Patchpannel unter anderem E-Dat Patchpannel? Welche Vor- und ...

Datenbanken
ORACLE DB Abfrage
Frage von MarabuntaDatenbanken5 Kommentare

Hallo, ich habe folgende Tabelle: Jetzt brauche ich eine Abfrage, um das vorletzte Datum auszugeben. Vorher: Zwischenstand: In den ...

Datenbanken

Europa Länder DB in Webseite einfügen ? Woher die DB ?

Frage von bob777Datenbanken8 Kommentare

HI Bastle gerabe an einer Seite CMS da kann man dann per Hand alle Länder einfügen ich brauche aber ...

Windows Server

Gnumeric mit DB Anbindung

Frage von zerkkkWindows Server1 Kommentar

Moin, zuerst einmal das war die für mich passenste Kategorie. Ich habe folgende Frage: Unter Linux ist es kein ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 1 TagiOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 4 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk22 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
Frage von Leo-leHosting & Housing20 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Virtualisierung
Gebrauchte Server Hardware als Virtualisierungs-"Spielwiese"?
Frage von NixVerstehenVirtualisierung15 Kommentare

Einen wunderschönen guten Morgen zusammen, ich möchte mich gerne etwas tiefer mit dem Thema Virtualisierung beschäftigen und dazu ein ...