Webstatt.org - Community seit 2006 - 2012 (2024?)

datenausgabe

user-186
03.05.2006 06:39

hallo

ich versuch eine art terminkalender zu basteln mit einem kreuztabellensystem.
es sollen daten der letzten 21 tage ausgegeben werden (also wer hat wann in den letzen 21 tagen gearbeitet).
zum besseren verständnis hier mal visuell:

NAME | 03.05 | 02.05 | 01.05 | 30.04 | 29.04 | 28.04 | etc.
---------------------------------------------------------------------------
name1 |
---------------------------------------------------------------------------
name2 |
---------------------------------------------------------------------------
name3 |
---------------------------------------------------------------------------
etc.


und hier mal mein bisheriger code:

<table width="574"  border="0" cellspacing="1" cellpadding="3"> 
<tr>
<?
#Fehleranzeige
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
##########

#Verbindung mit der Datenbank
mysql_connect("localhost","***","***"zwinkern;
mysql_select_db("***"zwinkern;
#########

#Query
$sql=mysql_query("SELECT a.nummer,a.pers_name,a.pers_vorname,a.status,a.rang,b.titel,b.auftragsnummer,c.job,c.eventdatum
from
sc_dispo_personal AS a ,sc_dispo_auftrag AS b,sc_dispo_daten AS c
WHERE
a.id=c.pers_id
AND
b.id=c.auftrag_id
AND
c.eventdatum < NOW()
"zwinkern;
echo mysql_error();
#########

#Tabelle
echo '<td bgcolor="#E0E3E9">name</td>';
$datenProZeile = 21;
$counter = 1;
for($today=$date=strtotime(date('Y-m-d'zwinkern);$date>=strtotime('-21 days',$today);$date=strtotime('-1 days',$date))
{
echo '<td bgcolor="#CCCCCC">',date('d.m.y',$date),'</td>';
if($counter % $datenProZeile == 0) {
}
$counter++;
}
?>
</tr>
<?
while($row = mysql_fetch_array($sql)) {
?>
<tr>
<?
echo '<td bgcolor="#E0E3E9">',$row['pers_name'],'</td>';
echo '<td> &nbsp;</td>';
?>
</tr>
<?
}
?>
</table>


wie krieg ich es hin, das wenn z.b. name2 am 28.04.2006 gearbeitet hat, dieses feld dann gefüllt wird (z.b. mit einem entsprechenden vermerk)?

kann mir jemand einen tipp geben, wie ich jetzt vorgehen muss?

Avatar user-162
03.05.2006 09:43

wäre es nicht einfacher wenn du eine Tabelle nur mit Namen und dem Datum seiner letzten Arbeit zu speichern?

Name | Datum
name1 11.03
name2 08.02
usw.

und dann bei deiner Ausgabe kannst du mit "SELECT * FROM `tabelle` WHERE TO_DAYS(NOW()) - TO_DAYS(Datum) = X" alle Datensätze auslesen die X Tage alt sind...

würd ich jedenfalls so machenlächeln

mfg nic

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-186
03.05.2006 10:00

ja, hast im prinzip natürlich schon recht. es würde einfach gehen, die daten einfach mit einer entsprechenden select-anweisung auszugeben. nur ich brauch das in diesem fall einfach in einer solchen übersicht, wie ich sie am anfang dargestellt habe....