mysql abfrage nach datum

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
bluebull
Mitglied
Beiträge: 11
Registriert: 29.09.2013 00:51

mysql abfrage nach datum

Beitrag von bluebull »

Hallo Zusammen

Ich habe eine Datenbank mit Projekten, Mitarbeitern und einer Zeiterfassung. Nun möchte ich eine Abfrage nach Datum, Projekt und Arbeitsstunden gestalten, habe abr keine Ahnung wie ich das anstellen soll. Ich möchte eine horizontale darstellung der Arbeitsunden nach Projekten aufgliedern und dabei das Datum als Spaltentitel haben:


...................... 01. .. 02. .. 03. .. 04. ........ [datum fortlaufen]
Projekt 1 .......... 8 ... 4 ... 8 ... 8
Projekt 2 .......... 2 ... 6 ... 1 ... 3
Projekt 3 .............................

wie stell ich das an? Danke und Gruss.
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: mysql abfrage nach datum

Beitrag von HabNurNeFrage »

Hi,

schau mal hier rein: http://sql.lernenhoch2.de/lernen/sql-anfanger/

Und um die Datenausgabe zu formatieren, könnte das hier helfen: http://de.selfhtml.org/index.htm

LG
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: mysql abfrage nach datum

Beitrag von Miriam »

Die Ausgabe, die Dir vorschwebt ist imho mit SQL allein nicht zu bewerkstelligenß
Dafür mußt Du dann auch noch etwas z. b. mit php machen und die Daten, die geliefert werden in Form bringen.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
bluebull
Mitglied
Beiträge: 11
Registriert: 29.09.2013 00:51

Re: mysql abfrage nach datum

Beitrag von bluebull »

hallo und danke. habe mir mal folgende abfrage zusammengebsatelt:

Code: Alles auswählen

<?php

$datumaktuell = "2014-03-30";

$sql = "SELECT * FROM projekte, zeiterfassung WHERE projekte.id = zeiterfassung.projektID AND zeiterfassung.datum = '$datumaktuell'";
$res = mysql_query($sql);

echo "<table border='1'>";
while($row = mysql_fetch_object($res))
   {
  echo "<tr>";
  echo "<td>",$row->stunden,"</td>";
  echo "</tr>";
   }
echo "</table>";


?>
diese gibt mir die stunden vom projekt zum aktuellen datum aus. jetz möchte ich aber die abfrage für jedes weiter datum haben. und das datum als splatentitel anzeigen. wie krieg ich das hin?
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: mysql abfrage nach datum

Beitrag von cYbercOsmOnauT »

Code: Alles auswählen

<?php
$sql = "SELECT * FROM projekte AS p
        INNER JOIN zeiterfassung AS z ON p.id = z.projektID 
        ORDER BY z.datum ASC";
$res = mysql_query($sql);

echo "<table border='1'>";
while($row = mysql_fetch_object($res))
   {
  echo "<tr>";
  echo "<td>",$row->datum,"</td>";
  echo "<td>",$row->stunden,"</td>";
  echo "</tr>";
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
bluebull
Mitglied
Beiträge: 11
Registriert: 29.09.2013 00:51

Re: mysql abfrage nach datum

Beitrag von bluebull »

sorry. hab mich unklar ausgedrückt. ich möchte das datum automatisch hochzählen (weiss leider nur nicht wie) und zu jedem datum die stunden ausgeben (wenn vorhanden). das ganze soll horizontal aufgelistet werden. --> ähnlich wie ein gantt chart
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Re: mysql abfrage nach datum

Beitrag von cYbercOsmOnauT »

es zählt doch hoch.. oder meinst Du, Du willst zu jedem Datum die Gesamtzeit aller Projekte?

Code: Alles auswählen

<?php
$sql = "SELECT SUM(p.stunden) AS gesamt FROM projekte AS p
        INNER JOIN zeiterfassung AS z ON p.id = z.projektID
        GROUP BY z.datum
        ORDER BY z.datum ASC";
$res = mysql_query($sql);

echo "<table border='1'>";
while($row = mysql_fetch_object($res))
   {
  echo "<tr>";
  echo "<td>",$row->datum,"</td>";
  echo "<td>",$row->gesamt,"</td>";
  echo "</tr>";
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
bluebull
Mitglied
Beiträge: 11
Registriert: 29.09.2013 00:51

Re: mysql abfrage nach datum

Beitrag von bluebull »

genau. und es sind nicht zu jedem datum einträge vorhanden zB Wochenende die Tage sollen aber trotzdem erscheinen. und das ganze soll eine ausrichtung von links nach rechts bekommen: links der projektname, oben die daten (datums ;-)) fortlaufend und dann wie in einer tabelle die stunden.
................ datum (fortlaufend) -->
projekt ..... stunden
projekt2..... stunden
projekt3..... stunden
bluebull
Mitglied
Beiträge: 11
Registriert: 29.09.2013 00:51

Re: mysql abfrage nach datum

Beitrag von bluebull »

Ich glaube was ich suche ist eine Kreuztabelle. Die Zeilen sollen die Projekte sein, die Spalten sollen das fortlaufende Datum sein. So sollen dann die Werte (Stunden) vom jeweiligen Tag dem Projekt zugeordner werden. Kann ich so was mit MySQL und PHP realisieren? Meine Abfrage steht im Moment bei

Code: Alles auswählen

<?php

$PROJEKTaktuell = "1";
$DATUMaktuell = "2014-04-01";

$sql = "SELECT *, SUM(stunden) AS gesamt FROM zeiterfassung, projekte WHERE projektID = '$PROJEKTaktuell' AND datum = '$DATUMaktuell'";
$res = mysql_query($sql);

echo "<table border='1'>";
echo "<tr>";
while($row = mysql_fetch_object($res))
   {
  echo "<tr>";
  echo "<td>",$row->gesamt,"</td>";
  echo "</tr>";
   }
echo "</table>";
?>
***edit***

ich habe mal das Grundgerüst zusammen:

Code: Alles auswählen

<?php

//variablen per get übermitteln
$von = "2014-03-27";
$bis = "2014-04-04";
$mitarbeiter = "1";

// sql

echo "<table border='1'>";
echo "<tr><th colspan=1> projekte </th><th colspan=9> datum fortlaufend </th></tr>";
echo "<tr>";
echo "<td>"," ","</td>";
while ($von < $bis)
   {
  echo "<td>",$von = date('Y-m-d', strToTime('+1 day', strToTime($von))),"</td>";
   }
echo "</tr>";

$sql = "SELECT * FROM projekte";
$res = mysql_query($sql);
while($row = mysql_fetch_object($res))
   {
      echo "<td>",$row->name,"</td>";
      echo "</tr>";
   }
echo "</table>";

?>
Bin ich da auf dem richtigen Weg? Danke und Gruss
Antworten

Zurück zu „Coding & Technik“