Kleur veranderen na bepaalde tijd
Aangezien ik nogal een onwetend iemand ben op het gebied van sql een vraagje. Ik heb een formulier waar gegevens worden ingevuld en deze worden toegevoegd aan de database. Tot zover gaat het allemaal zoals gewenst. Nu wil ik graag dat na een bepaalde tijd dat de gegevens in een andere kleur worden weergegeven. Voorbeeld:
Iemand vult iets in over een klant. Als deze gegevens na bijv. een week nog niet zijn gewijzigd (er is dus geen contact geweest met die klant) moet dit een andere kleur worden (bijv. rood) zodat het goed opvalt als je een overzicht van alle zaken bekijkt.
Weet iemand van jullie hier een oplossing voor?
Alvast bedankt voor de hulp :)
Groeten uit Spanje,
Hans
PS: Zoek je nog een buurman?
zoals je al aangeeft '.. na een bepaalde tijd...', het je iets van een tijdsindicatie nodig. Waarschijnlijk wil op het moment dat het bericht gepost wordt, de datum/tijd van aanmaken meenemen ( mee opslaan).
Op het moment dat de lijst weer wordt opgevraagd, kunt je controleren met de huidige datum/tijd meer is dan de datum/tijd + 7 dagen. Als dat waar is maak je het rood, en anders ...??? ( een andere kleur... :p)
Bedankt voor de snelle reactie :) Geweldig
Dus als ik het goed begrijp, op het moment dat ik gegevens uit de database ophaal kan ik de kleur veranderen met een script?
Nieuwe buren altijd welkom :)
Toevoeging op 09/01/2012 23:34:53:
Hoi Jim,
Ja, de datum van aanmaken wordt ook opgeslagen.
Nu heb ik geen idee waar of hoe ik dat zou moeten doen, :/
Ik denk dat het iets met deze regel te doen heeft:
Hans Spanje op 09/01/2012 23:30:48:
Inderdaad op basis van de leeftijd van de topic bepaal je de kleur en genereer je de html. Maar je doet dat in je SQL, dus bij het ophalen van de gegevens of wanneer de HTML uit een array gegenereerd wordt in php code met bijvoorbeeld een if constructie.Dus als ik het goed begrijp, op het moment dat ik gegevens uit de database ophaal kan ik de kleur veranderen met een script?
Gewijzigd op 09/01/2012 23:37:38 door Aad B
Toevoeging op 09/01/2012 23:40:58:
Hans, kan je de code plaatsen die de gegevens laat zien op het scherm?
Ga er even verder mee pielen, en ik laat hier even weten wat er van komt ;-)
Groeten,
Hans
Toevoeging op 09/01/2012 23:42:47:
Ik denk dat dit gedeelte het is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
if($row = mysql_fetch_array($results)){
do{
$call_date = $row['call_date'];
$department_id = $row['department_id'];
$issue_id = $row['issue_id'];
$drow = mysql_fetch_array(mysql_query("select department_desc from departments where department_id = $department_id"));
$irow = mysql_fetch_array(mysql_query("select issue_desc from issue_types where issue_id = $issue_id"));
?>
if($row = mysql_fetch_array($results)){
do{
$call_date = $row['call_date'];
$department_id = $row['department_id'];
$issue_id = $row['issue_id'];
$drow = mysql_fetch_array(mysql_query("select department_desc from departments where department_id = $department_id"));
$irow = mysql_fetch_array(mysql_query("select issue_desc from issue_types where issue_id = $issue_id"));
?>
<tr>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
Succes!:)
ff kijken of ik dit ook behoorlijk op scherm krijg:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
if($row = mysql_fetch_array($results)){
do{
$call_date = $row['call_date'];
$department_id = $row['department_id'];
$issue_id = $row['issue_id'];
$drow = mysql_fetch_array(mysql_query("select department_desc from departments where department_id = $department_id"));
$irow = mysql_fetch_array(mysql_query("select issue_desc from issue_types where issue_id = $issue_id"));
?>
if($row = mysql_fetch_array($results)){
do{
$call_date = $row['call_date'];
$department_id = $row['department_id'];
$issue_id = $row['issue_id'];
$drow = mysql_fetch_array(mysql_query("select department_desc from departments where department_id = $department_id"));
$irow = mysql_fetch_array(mysql_query("select issue_desc from issue_types where issue_id = $issue_id"));
?>
<tr>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
<td class="border1"></td>
Toevoeging op 09/01/2012 23:47:30:
Nou,
dat is nog steeds een bende, moet ik dit even verwijderen?
" " de html-class van de <tr> setten. (<tr class="...">..)
Daarmee voorkom je dat je het voor iedere cel gaat doen. (DRY)
(DRY, als je toch aan het google-en bent...)
Succes
Gewijzigd op 09/01/2012 23:49:29 door - Jim -
Als je de code tussen de [c0de] en [/c0de] tags doet dan komt het netjes in beeld :)
En dan natuurlijk de 0 vervangen voor een o...
Gewijzigd op 10/01/2012 00:41:27 door Bram Boos
Bedankt :) Weer wat geleerd.
Ben nog steeds aan het worstelen trouwens, heb al een aantal dingen gevonden maar niets werkt :(
Ben nu hiermee aan het proberen, kunnen jullie me vertellen of dit de juiste weg is?
(en hier gaat ie Bram )
[/b]
$datePosted = strtotime($row["date"]);
$dateNow = time();
$howLongSince = $dateNow - $datePosted;
/*
60*60*24*7 = 1 week
60*60*24*7*2 = 2 weeks
*/
if ($howLongSince>60*60*24*7*2) // Older than 2 weeks
{
$color = "#D1180A";
} elseif ($howLongSince>60*60*24*7) // Older than 1 week, less than 2 weeks
{
$color = "#D1B30A";
}
else {
$color = "#08C90F";
}
echo "<font color=\"$color\">";
Toevoeging op 10/01/2012 00:55:15:
Ha ha,
Ik krijg het hiermee wel in een andere kleur maar de datum trekt zich er niets van aan.
Nu ik het ook bekijk klopt dat ook wel, hij doet gewoon een echo van de kleur voor m'n output zetten.
***
Nog even door zitten pielen en nu werkt het wel :)
Super, alleen 1 probleempje, nu kan ik niet slapen van de overwinningsroes, LOL
Mensen, hartelijk dank voor deze snelle en goede hulp!!
Groeten uit Spanje
Het is gebruikelijk dat na het oplossen van het probleem kort in word gegaan wat je hebt gedaan om het werkend te kijken. Zo hebben de overige en toekomstige forum leden er waarschijnlijk ook nog wat aan, mochten ze het zelfde probleem treven.
Bedankt al vast voor het delen.
De cde die ik gebruikt heb was OK, stond alleen op de verkeerde plaats, ik had het voor:
[/b]
$datePosted = strtotime($row["call_date"]);
Toen werd alles rood, nu na
$datePosted = strtotime($row["call_date"]);
en het werkt :)