Duplicates verwijderen in een string

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Victor G

Victor G

19/08/2013 20:35:33
Quote Anchor link
Hallo mensen,

Ik ben aan het coderen voor een vriend van me. Alleen ik kom ergens niet uit. Ik maak een donator list, waar je kan sorteren op maand. De bedoeling is dat je per maand kan kijken wat er gedoneerd is met een dropdown menu. Maar als er meerdere donaties per maand zijn laat hij die dus ook allemaal zien in de dropdown, terwijl hij dus één optie (maand) moet laten zien. De code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$getdonations_data = $db->query("SELECT * FROM `".TABLE_PREFIX."dc_donations` ORDER BY id DESC");
$count_donations = $db->num_rows($getdonations_data);

if($count_donations > 0){
    while ($donlvl = $db->fetch_array($getdonations_data)){
            $getdate = date('M Y', $donlvl['date']);
            $getdate = implode(',', array_unique(explode(',', $getdate)));
        
            $template .= '<option value="'.$getdate.'">'.$getdate.'</option>';
        }
    }


Return array:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Apr 2013Apr 2013Jan 2013Dec 2012Nov 2012Nov 2012Nov 2012Nov 2012Oct 2012Oct 2012Oct 2012Oct 2012Oct 2012Oct 2012Sep 2012


Als iemand mij hierbij kan helpen zou het erg fijn zijn, alvast bedankt.
Gewijzigd op 19/08/2013 20:43:41 door Victor G
 
PHP hulp

PHP hulp

27/11/2024 20:07:33
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

19/08/2013 20:48:31
Quote Anchor link
Gewoon in de query regelen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT DISTINCT DATE_FORMAT(date, '%b %Y') AS month_year FROM ....
 
Victor G

Victor G

19/08/2013 20:53:27
Quote Anchor link
En nu is de return string dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Jan 1970
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

19/08/2013 21:02:50
Quote Anchor link
Dan zal je (denk ik) nog steeds die conversies in PHP uitvoeren, dat hoeft niet meer want dat gebeurt al in de query. Dus gewoon heel simpel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
while ($donlvl = $db->fetch_assoc($getdonations_data)){
    $template .= '<option value="' . $donvl['month_year'] . '">' . $donvl['month_year'] . '</option>';
}
Gewijzigd op 19/08/2013 21:03:08 door Ger van Steenderen
 
Victor G

Victor G

19/08/2013 21:09:56
Quote Anchor link
De array is nu helemaal leeg helaas..
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

19/08/2013 21:19:26
Quote Anchor link
Welke array? Wat heb je nu aan code?
Iets meer informatie is ook wel handig, zo is het alleen maar gokken.
 
Victor G

Victor G

19/08/2013 21:30:05
Quote Anchor link
Ik heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
$getdonations_data = $db->query("SELECT DISTINCT DATE_FORMAT(date, '%b %Y') AS month_year FROM `".TABLE_PREFIX."dc_donations` ORDER BY id DESC ");
$count_donations = $db->num_rows($getdonations_data);

if($count_donations > 0){
    while ($donlvl = $db->fetch_array($getdonations_data)){
        print_r($donlvl['month_year']);
        $template .= '<option value="'.$donlvl['month_year']. '">'.$donlvl['month_year'].'</option>';
    }
}


Nog verdere informatie nodig?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

19/08/2013 21:40:36
Quote Anchor link
Ik heb de query op zich uitgetest, en bij mij krijg ik resultaat. Daarbij wel even de opmerking plaatsend dat ik never nooit een datum kolom als de naam date geef.
Met andere woorden, test de query uit in Workbench of PhpMYAdmin of voeg foutafhandeling toe aan je script.
 
Erwin H

Erwin H

19/08/2013 22:45:37
Quote Anchor link
Een probleem in queries met datums begint wat mij betreft altijd met dezelfde vraag: hoe sla je die datums op in je database? Wat voor veld gebruik je?
 
Victor G

Victor G

20/08/2013 10:24:32
Quote Anchor link
Ik gebruik een unix timestamp. Mijn db ziet er als volgt uit:

Afbeelding
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/08/2013 17:33:04
Quote Anchor link
Wellicht is het handiger om het als een date op te slaan. Maar je kan DATE_FORMAT vervangen door FROM_UNIXTIME.
 
Victor G

Victor G

21/08/2013 12:34:11
Quote Anchor link
Hij werkt nu, heel erg bedankt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.