Digiboy Posted June 6, 2013 Share Posted June 6, 2013 Hi guys, I have a very basic issue, Im trying to get these results (List all result with coma and delete last coma) like : actor 1, actor 2 My total entries are two in mysql but i get first result duplicated and no coma! This is my code, could you please help me spotting my mistake? Thank you all $select_actors=mysql_query("SELECT * FROM actors_in_movies WHERE movie_ref='$movie_ref'"); if (mysql_num_rows($select_actors)>=1) { while ($row=mysql_fetch_array($select_actors)) { $actor_ref=$row['actor_ref']; $select_actor_name=mysql_query("SELECT * FROM actors WHERE actors_ref='$actor_ref' AND active='1'"); while ($row_actor=mysql_fetch_array($select_actor_name)) { $actor_name.=$row_actor['actors_name'].","; $actor_name = substr(trim($actor_name), 0, -1); echo" $actor_name"; }}} Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/ Share on other sites More sharing options...
thebo0 Posted June 6, 2013 Share Posted June 6, 2013 (edited) You need to take some code out of your loop. For example: while ( $row_actor = mysql_fetch_array($select_actor_name) ) { $actor_name .= $row_actor['actors_name'] . ", "; } $actor_name = substr(trim($actor_name), 0, -1); echo $actor_name; Edited June 6, 2013 by thebo0 Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/#findComment-1434478 Share on other sites More sharing options...
Jessica Posted June 6, 2013 Share Posted June 6, 2013 The substr is superfluous, you can use trim with a second parameter. Or even better use an array and implode. Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/#findComment-1434479 Share on other sites More sharing options...
Digiboy Posted June 6, 2013 Author Share Posted June 6, 2013 Did that and still get the same result $select_actors=mysql_query("SELECT * FROM actors_in_movies WHERE movie_ref='$movie_ref'"); if (mysql_num_rows($select_actors)>=1) { while ($row=mysql_fetch_array($select_actors)) { $actor_ref=$row['actor_ref']; $select_actor_name=mysql_query("SELECT * FROM actors WHERE actors_ref='$actor_ref' AND active='1'"); while ($row_actor=mysql_fetch_array($select_actor_name)) { $actor_name .= $row_actor['actors_name'] . ","; } $actor_name = substr(trim($actor_name), 0, -1); echo " $actor_name"; } } Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/#findComment-1434482 Share on other sites More sharing options...
Digiboy Posted June 6, 2013 Author Share Posted June 6, 2013 The substr is superfluous, you can use trim with a second parameter. Or even better use an array and implode. Thanks but how? im almost new to php Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/#findComment-1434483 Share on other sites More sharing options...
thebo0 Posted June 6, 2013 Share Posted June 6, 2013 Oh in that case you'll need to move those two lines out of the first loop. $select_actors=mysql_query("SELECT * FROM actors_in_movies WHERE movie_ref='$movie_ref'"); if (mysql_num_rows($select_actors)>=1) { while ($row=mysql_fetch_array($select_actors)) { $actor_ref=$row['actor_ref']; $select_actor_name=mysql_query("SELECT * FROM actors WHERE actors_ref='$actor_ref' AND active='1'"); while ($row_actor=mysql_fetch_array($select_actor_name)) { $actor_name .= $row_actor['actors_name'] . ","; } } $actor_name = substr(trim($actor_name), 0, -1); echo " $actor_name"; } Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/#findComment-1434484 Share on other sites More sharing options...
Digiboy Posted June 6, 2013 Author Share Posted June 6, 2013 Oh in that case you'll need to move those two lines out of the first loop. $select_actors=mysql_query("SELECT * FROM actors_in_movies WHERE movie_ref='$movie_ref'"); if (mysql_num_rows($select_actors)>=1) { while ($row=mysql_fetch_array($select_actors)) { $actor_ref=$row['actor_ref']; $select_actor_name=mysql_query("SELECT * FROM actors WHERE actors_ref='$actor_ref' AND active='1'"); while ($row_actor=mysql_fetch_array($select_actor_name)) { $actor_name .= $row_actor['actors_name'] . ","; } } $actor_name = substr(trim($actor_name), 0, -1); echo " $actor_name"; } You are an absolute hero dude, well done, worked like a charm Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/#findComment-1434486 Share on other sites More sharing options...
Digiboy Posted June 6, 2013 Author Share Posted June 6, 2013 sorry one more question, now if i want to present this as a url then what i need to do? doing below put them all in one link echo'<a href="../actors/index.php?name='.$actor_name.'">'.$actor_name.'</a>'; Quote Link to comment https://forums.phpfreaks.com/topic/278852-php-loop/#findComment-1434488 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.