Vergelijken

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.260
Hoi,

Als er geen waarde 2015 is , alleen de waarden van 2014 ophalen

Heb ik een 2015 worden de waarden van 2015 en 2014 opgehaald, moeten dus alleen die van 2015 zijn

Heb ik een waarde 2014 worden deze opgehaald

PHP:
$actueel_jaar = date("Y");  //2015
$actueel_jaar2 = date("Y")-1; // 2014
if ( isset($actueel_jaar)) $actueel_jaar = $actueel_jaar2;

iemand de oplossing, of wat er fout gaat.
 
Ik vind het een aardig warrig verhaal, wat wil je precies bereiken?

In deze code levert jouw IF-statement altijd true op want date("Y") zal altijd een waarde opleveren voor $actueel_jaar
 
Ik vind het een aardig warrig verhaal, wat wil je precies bereiken?

In deze code levert jouw IF-statement altijd true op want date("Y") zal altijd een waarde opleveren voor $actueel_jaar

Ik haal gegevens op waar jaartal in voorkomt

Als er 2015 in voorkomt , doe iets alleen voor de waarden met 2015, (in mijn geval krijgen de waarden uit 2015 een achtergrondkleurtje)
komt er geen 2015 in voor , neem dan 2014 (een jaar minder dan het actueel jaar) en geef die het achtergrondkleurtje.

Wordt een een waarde 2015 gegeven dan geld dit kleurtje dus alleen voor de waarden van 2015


is jaartal 2015 niet aanwezig, doe dan iets met jaartal 2014 , is jaartal 2015 aanwezig (dat hoeft op dit moment nog niet) , dan doe alleen iets voor 2015
 
Laatst bewerkt:
Weergave zaken kun je het beste via CSS regelen dus mijn voorstel is een CSS klasse te gebruiken die je via PHP definieert:

PHP:
// Lijstje aan invoer
$input = array('2015', '2014', '2014', '2015');
// Placeholder voor de resultaten
$result = array();

foreach ($input as $year) {
    // Daadwerkelijke code
    $cssClass = "current-year";
    if (date("Y") != $year) {
        $cssClass = "past-year";
    }
    $result[] = $cssClass;
}

var_dump($result);

Die variabele kun je dus op je output toepassen en met behulp van CSS een achtergrondkleur geven.

Als dit niet is wat je zoekt, zul je toch een concreet voorbeeld moeten geven met data die je wilt verwerken.
 
Bedankt,

ik ben hier alleen afh van de ingegeven jaren.

voorbeeld 1 (rij met data uit de table uit database )
data van 2015 indien er een waarde met 2015 voorkomt maak de waarden uit 2015 bold
data van2015
enz

en dus die van 2014 niet

data in 2014
data in 2014
data in 2014
data in 2014
enz
----------------------------------------------------------
voorbeeld 2

Omdat er niks met datum 2015 aanwezig is maken we de waarden uit 2014 (een jaar geleden) Bold
data in 2014
data in 2014
data in 2014
data in 2014



Het gaat er niet zo zeer om wat er moet gebeuren dat komt wel goed.
dus komt er 2015 in voor ,,geef ALLEEN de rijen van 2015 een kleurtje
komt er geen 2015 in voor ,,doe dit kleurtje dan alleen voor de waarden waar 2014 (een jaar geleden ) in voorkomt
 
Laatst bewerkt:
Wellicht is het dan handig om middels een aparte query het hoogste jaartal op te vragen?
[sql]SELECT MAX(year) FROM tabel[/sql]

Die kun je dan voor je vergelijking gebruiken, dan hoef je alleen maar de waarde uit je loop te vergelijken met het resultaat uit die MAX-query.

Het is wel een beetje afhankelijk van hoe die jaren in de database staat, wellicht moet je de waardes eerst in wat functies gooien voor je kunt vergelijken.
 
Moet ik eens naar kijken , zit wel iets in.

PHP:
$actueel_jaar = date("Y");  //2015
$actueel_jaar2 = date("Y")-1; // 2014
if ( isset($actueel_jaar)) $actueel_jaar = $actueel_jaar2;


Hier staat toch in de laatste regel : als 2015 niet voorkomt, doe dan 2014, of zie ik dat toch verkeerd?

edit

dan moet ik er waarschijnlijk nog een else aan toevoegen
 
Laatst bewerkt:
Je checkt of de variabele $actueel_jaar is ingesteld, niet welke waarde het is. Die variabele zal altijd ingesteld zijn dus er wordt niets gedaan met de code binnen je IF-statement
 
dit levert als ik een rij heb met 2015 erin ,een "kleurtje " van achtergrond tekst op

PHP:
$actueel_jaar = date("Y"); 
$actueel_jaar2 = date("Y")-1;
if (isset($actueel_jaar)) {
     $actueel_jaar = $actueel_jaar; 
} else {
    $actueel_jaar = $actueel_jaar2; 
}

Maar haal ik de rij waar 2015 in voorkomt weer weg , zouden de rijen met 2014 erin hte kleurtje moeten krijgen maar gebeurt dus niet.

Moet ik de query van jou hierboven maar eens proberen
 
Dit is wat jouw code doet:
Code:
Zet de waarde van variabele $actueel_jaar op 2015;
Zet de waarde van variabele $actueel_jaar op 2014;
(Controleer of variabele $actueel_jaar een waarde heeft) {
    Zet de waarde van variabele $actueel_jaar op de waarde van $actueel_jaar;
} anders {
    Zet de waarde van variabele $actueel_jaar op de waarde van $actueel_jaar2;
}
Je vergelijkt nu niets, je controleert alleen iets. Je zult dus altijd op $actueel_jaar = $actueel_jaar uitkomen. Dus $actueel_jaar is altijd 2015
 
Dit is wat jouw code doet:
Code:
Zet de waarde van variabele $actueel_jaar op 2015;
Zet de waarde van variabele $actueel_jaar op 2014;
(Controleer of variabele $actueel_jaar een waarde heeft) {
    Zet de waarde van variabele $actueel_jaar op de waarde van $actueel_jaar;
} anders {
    Zet de waarde van variabele $actueel_jaar op de waarde van $actueel_jaar2;
}
Je vergelijkt nu niets, je controleert alleen iets. Je zult dus altijd op $actueel_jaar = $actueel_jaar uitkomen. Dus $actueel_jaar is altijd 2015


Ik heb het wat aangepast eenvoudiger ter controle.
PHP:
//$jaar_2015 = date("Y"); 
//$jaar_2014 = 2014;

$kleur = '#F00';  // rood , var feitelijk nu overbodig, kan ook direct.
$crud->highlight('datum', ">=",2014, "$kleur" )
Hier wordt dus als de datum 2014 is een achtergrondkleurtje rood toegevoegd aan de rijen met datums die een waarde van 2014 en hoger
(hoger is hier dus niet gewenst) hebben. (dit werkt, bijv 2012 en 2013 geen kleur te zien)
Probleem zit hem in de operator ik kan er niet dit == van maken want dan gebeurt er niks.
Een datum waarde is bijv. 27-04-2014 , 2015 of 2014 wordt hiervan gewoon opgepakt dus dat werkt.

rij met 2015
rij met 2015
rij met 2014
rij met 2014

rij met 2013

zou moeten worden

rij met 2015
rij met 2015
rij met 2014
rij met 2014

rij met 2013
 
Laatst bewerkt:
Aan die code hebben we niets omdat we niet weten wat $crud->highlight() doet :)

Het enige dat we weten is dat hij 4 parameters meekrijgt maar wat er uitgevoerd wordt (en waar het dus mis gaat) staat er niet bij.
 
Aan die code hebben we niets omdat we niet weten wat $crud->highlight() doet :)

Het enige dat we weten is dat hij 4 parameters meekrijgt maar wat er uitgevoerd wordt (en waar het dus mis gaat) staat er niet bij.

Ik zal eens in de $crud moeten snuffelen...

4 parameters:

Geef de rij Datum die een waarde 2014 (gelijk of hoger in dit geval) hebben een kleurtje rood(highlight)
 
Laatst bewerkt:
Ik begin het vermoeden te krijgen dat dit een (school)opdracht is die je uit moet voeren, klopt dat?
 
Verkeerd vermoeden :D daar ben ik veel te oud voor...
 
Laatst bewerkt:
Dan komt het door de manier waarop je het door geeft ;)

Kun je hier de inhoud van die functie "highlight" plaatsen?
 
Ik hoop dat je hier iets aan hebt, het hele document is nogal groot, maat dit moet de functie zo ong. zijn

PHP:
<?php 
public function highlight($columns = '', $operator = '', $value = '', $color = '', $class = '')
    {
        if ($columns && $operator)
        {
            $fdata = $this->_parse_field_names($columns, 'highlight');
            foreach ($fdata as $fitem)
            {
                $this->highlight[$fitem['table'] . '.' . $fitem['field']][] = array(
                    'value' => $value,
                    'operator' => $operator,
                    'color' => $color,
                    'class' => $class);
            }
        }
        return $this;
    }
    public function highlight_row($columns = '', $operator = '', $value = '', $color = '', $class = '')
    {
        if ($columns && $operator)
        {
            $fdata = $this->_parse_field_names($columns, 'highlight_row');
            foreach ($fdata as $fitem)
            {
                $this->highlight_row[] = array(
                    'field' => $fitem['table'] . '.' . $fitem['field'],
                    'value' => $value,
                    'operator' => $operator,
                    'color' => $color,
                    'class' => $class);
            }
        }
        return $this;
    }
   ?>
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan