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, 3972 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
Microsoft Office

Daten einer MSSQL DB Tabelle in Excel ändern

gelöst Frage von it-froschMicrosoft Office3 Kommentare

Hallo Kollegen, ich habe in einer MSSQL DB eine Tabelle, deren Inhalt täglich als Datenquelle für einen Pflegejob verwendet ...

Java

Daten aus einer mysql DB in Android Studio in einer Tabelle mit Spaltenüberscgrift anzeigen

Frage von helmuthelmut2000Java

Hallo, Ich lasse bis jetzt meine Daten aus einer MySQL Datenbank im Android Studio in einem listview anzeigen. Da ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

Tipp von gdconsultSicherheits-Tools3 Kommentare

Hallo! Ich habe gerade ein nettes kleines Tool fertiggestellt. Damit kann die Passwort-Spalte einer CSV-Datei der reihe nach gehen ...

Microsoft Office

Word Dokument (vorausgefüllte Formulare) aus Excel Tabelle generieren

Frage von Server4AlleMicrosoft Office1 Kommentar

Hallo, gibt es eine Möglichkeit aus einer Excel Tabelle (Datenquelle) heraus mehrere Word Dokument (vorausgefüllte Formulare) zu generieren? Oder ...

Neue Wissensbeiträge
Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 15 StundenRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 2 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 3 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

DSL, VDSL
Bei Unitymedia eine eigene IPv4 mit DS bekommen
Tipp von matze2090 vor 3 TagenDSL, VDSL1 Kommentar

Hallo, ich hatte noch vor kurzem eine DS-Lite Verbindung bei Unitymedia. Das nachteil zu DS ist das Port Forwarding ...

Heiß diskutierte Inhalte
Windows Netzwerk
Performance bei Terminalserver
Frage von azizalexanderWindows Netzwerk20 Kommentare

Hallo zusammen, Ich wusste nicht in welches Thema meine Frage passt ich Bitte um Vergebung falls ich hier falsch ...

LAN, WAN, Wireless
Bandbreitenverteilung Netzwerk Linux NAS Qnap
Frage von Re-AnimatorLAN, WAN, Wireless18 Kommentare

Hallo Allerseits, ich habe hier im Netzwerk ein Problem mit der Bandbreite für das ich keine Erklärung habe! und ...

Exchange Server
Exchange 2013 - Unable to Relay nach extern, SuperMailer
Frage von leon123Exchange Server13 Kommentare

Hallo zusammen, ich brauch mal wieder eure Hilfe. Ich beschäftige mich gerade mit dem SuperMailer und erhalte vom Exchange ...

Windows Server
Fujitsu Server Installation
Frage von stolliWindows Server10 Kommentare

Guten Tag, Ich benötige mal wieder eure Hilfe. Ich hab mir einen gebrauchten Fujitsu Server Primergy TX120 SP3 zugelegt ...