carlsenjesper Posted February 18, 2015 Share Posted February 18, 2015 Hi All Please help me figure this one out as I am completely new to PHP and defiantly not going to win any trophies in coding efficiency. I am pulling my CastingCartTalentID from WordPress and then using that ID to look up a category in another table in WordPress. All CastingCartTalentID's are returned just fine, but since my Categories are being looked up within the nested foreach loop, I end up with duplicated Categories:-( The Categories are finally assigned to buttons in HTML, but I don't want to have duplicated buttons on the page. $myTalentID = $wpdb->get_results("SELECT CastingCartTalentID FROM ". table_agency_castingcart ." WHERE CastingJobID = '$mycustomID'"); foreach ($myTalentID as $obj){ $myID = $obj->CastingCartTalentID; $mySort = $wpdb->get_results("SELECT DISTINCT B1.ProfileCustomValue FROM ". table_agency_customfield_mux ." B1, ". table_agency_customfields ." A1 WHERE B1.ProfileID = '$myID' AND A1.ProfileCustomTitle = 'Category' AND A1.ProfileCustomID = B1.ProfileCustomID"); foreach ($mySort as $obj){ $myCat = $obj->ProfileCustomValue; echo "<td><button class=\"filter\" data-filter=\".category-$myCat\">$myCat</button></td>"; }} When I print_r my $mySort I get the following: Array ( [0] => stdClass Object ( [ProfileCustomValue] => B ) ) Array ( [0] => stdClass Object ( [ProfileCustomValue] => A ) ) Array ( [0] => stdClass Object ( [ProfileCustomValue] => C ) ) Array ( [0] => stdClass Object ( [ProfileCustomValue] => B ) ) I have tried using array_unique but that dosnt help me. Is there another way to solve this? or is there a solution to remove duplicates? Please any help is appreciated Quote Link to comment https://forums.phpfreaks.com/topic/294718-duplicates-in-loop/ Share on other sites More sharing options...
ginerjm Posted February 19, 2015 Share Posted February 19, 2015 Defiantly?? 1 - perhaps this would be better posted in a wordpress forum? 2 - when posting code here (and in most forums) you should use the appropriate tags to present it better. Here that would be "code" and "/code" wrapped in square brackets. 3 - code that is formatted more like code and not a paragraph of text is easier to read, interpret and understand for those who are unfamiliar with it, by far. Quote Link to comment https://forums.phpfreaks.com/topic/294718-duplicates-in-loop/#findComment-1506142 Share on other sites More sharing options...
Psycho Posted February 19, 2015 Share Posted February 19, 2015 You should take some time to learn how to use a database - specifically JOINs. You should avoid running queries in loops like that guy that hangs around the elementary school. Also, if you are going to give a table an alias, use something that is descriptive rather than "A1" & "B1". The DISTINCT isn't really doing what it could because you are running separate queries. Run ONE query. After analyzing the two queries, I think this should work $query = "SELECT DISTINCT cfmux.ProfileCustomValue FROM " . table_agency_customfield_mux ." cfmux JOIN " . table_agency_castingcart ." ccart ON cfmux.ProfileID = ccart.CastingCartTalentID JOIN " . table_agency_customfields ." cfields ON cfields.ProfileCustomID = cfmux.ProfileCustomID WHERE cfmux.ProfileID = '{$myID}' AND ccart.CastingJobID = '{$mycustomID}' AND cfields.ProfileCustomTitle = 'Category'"; $results = $wpdb->get_results($query); foreach ($results as $obj) { $myCat = $obj->ProfileCustomValue; echo "<td><button class=\"filter\" data-filter=\".category-{$myCat}\">{$myCat}</button></td>\n"; } Quote Link to comment https://forums.phpfreaks.com/topic/294718-duplicates-in-loop/#findComment-1506148 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.