Jump to content

[SOLVED] Comma Seperaters


xXREDXIIIXx

Recommended Posts

OK heres the problem:

 

I am working on my video games section. you all probably know the some games ore only on certain platforms and some are on a few or all,

 

I would like to show which platforms the game is on (I can achive this) BUT with comma seperaters.

I have tried using implode but if one of the vars is empty it produces something like:

 

Playstation3, , Xbox 360, ,

 

So I need a way of either removing the excess commas or a way around it

 

Please help :)

Link to comment
https://forums.phpfreaks.com/topic/168728-solved-comma-seperaters/
Share on other sites

Thanks for quick reply I love this place :)

 

here was the code

 

if($_SESSION['by'] == 'games'){		

if($row['ps3'] == 1){$ps3 = "Playstation 3";}
if($row['xbox'] == 1){$xbox = "Xbox";}
if($row['360'] == 1){$x360 = "Xbox 360";}
if($row['wii'] == 1){$wii = "Wii";}
if($row['pc'] == 1){$pc = "Windows";}

$array = array($ps3, $xbox, $x360, $wii, $pc);
$comma_separated = implode(", ", $array);

$comma = str_replace(", ,", ",", $comma_separated);
echo str_replace(", ,", ",", $comma);
}

 

I had to do the str_replace twice once wasnt enough  ::)

 

 

---

 

reply to new post could you show me how to implament that into my above? I better understand new code when I see with my own words so to speak.

 

3 tables

 

table 1 - platformID platformName

 

table 2 - gameID gameName ...

 

table 3 - gameID platformID

 

table 3 will have foreign keys that relate to the primary keys of the other tables.

 

query on game id selecting platfrom ids that match in table 3 and so get the corsponding platform name from platform id.

 

Put results in an array and then implode(', ', $arr);

 

Job done.

3 tables

 

table 1 - platformID platformName

 

table 2 - gameID gameName ...

 

table 3 - gameID platformID

 

table 3 will have foreign keys that relate to the primary keys of the other tables.

 

query on game id selecting platfrom ids that match in table 3 and so get the corsponding platform name from platform id.

 

Put results in an array and then implode(', ', $arr);

 

Job done.

 

errm got it wroking with the previous post, thanks anyway  8)

 

if($_SESSION['by'] == 'games'){		

if($row['ps3'] == 1){$ps3 = "Playstation 3";}
if($row['xbox'] == 1){$xbox = "Xbox";}
if($row['360'] == 1){$x360 = "Xbox 360";}
if($row['wii'] == 1){$wii = "Wii";}
if($row['pc'] == 1){$pc = "Windows";}

$array = array($ps3, $xbox, $x360, $wii, $pc);

foreach($array as $key => $value) {
  if($value == "") {
unset($array[$key]);
  }
}
$consoles = implode(", ", $array);

echo $consoles;
}

 

This can be marked as solved thanks :)

OK, instead of creating the array with items you don't want how about you only put the item into

the array if it tests true (==1) using array_push

 

http://us.php.net/array_push

 

This should work

 

if($_SESSION['by'] == 'games') {

# Create the Array
$array = array();      
                              
if($row['ps3'] == 1) {
  array_push($array, "Playstation 3");
}

if($row['xbox'] == 1) {
  array_push($array, "Xbox");
}

if($row['360'] == 1) {
  array_push($array, "Xbox 360");
}

if($row['wii'] == 1) {
  array_push($array, "Wii");
}

if($row['pc'] == 1) {
  array_push($array, "Windows");
}
               
$comma_separated = implode(", ", $array);
               
echo $comma_separated;

}

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.