Duplicates verwijderen in een string
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)
1
2
3
4
5
6
7
8
9
10
11
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>';
}
}
$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)
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
Code (php)
1
2
3
4
2
3
4
<?php
while ($donlvl = $db->fetch_assoc($getdonations_data)){
$template .= '<option value="' . $donvl['month_year'] . '">' . $donvl['month_year'] . '</option>';
}
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
De array is nu helemaal leeg helaas..
Iets meer informatie is ook wel handig, zo is het alleen maar gokken.
Code (php)
1
2
3
4
5
6
7
8
9
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>';
}
}
$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?
Met andere woorden, test de query uit in Workbench of PhpMYAdmin of voeg foutafhandeling toe aan je script.
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?
Wellicht is het handiger om het als een date op te slaan. Maar je kan DATE_FORMAT vervangen door FROM_UNIXTIME.
Hij werkt nu, heel erg bedankt.