Good day! I’m having a problem in duplication of results when I’m selecting data from two tables with the same values. I have one data in my first table homepost
with an ID of 2
and I have three data in table multiple
with an ID of 2
.
So. In my source code. I’m selecting all the data with the same values ID
. But it duplicates my one data from homepost
because I have three data from multiple
with the same values [ID]
. Any help? Thank you!
For example in the table below:
Table [homepost] Table [multiple] homeID homeDesc multipleID multipleImage 2 John 2 Image1 3 Samantha 2 Image2 2 Image3 3 Image4 3 Image5
Results of my code:
John Image1 John Image2 John Image3 Samantha Image4 Samantha Image5
What I want is:
John Image1 Image2 Image3 Samantha Image4 Image5
Here’s my Source Code:
<?php include ("dbconnect.php"); $content_sql="SELECT post.postID, post.postTitle, post.postDesc, post.postImage FROM post JOIN category ON (post.categoryID=category.categoryID) WHERE post.categoryID=".$_GET['categoryID']; if($content_query=mysqli_query($con, $content_sql)) { $content_rs=mysqli_fetch_assoc($content_query); } do { echo $content_rs['postTitle']; echo $content_rs['postDesc']; } while ($content_rs=mysqli_fetch_assoc($content_query)) ?>
Advertisement
Answer
You can simply check the name each time round the loop and only output it if its a new one
<?php include ("dbconnect.php"); $sql="SELECT post.postID, post.postTitle, post.postDesc, post.postImage FROM post JOIN category ON (post.categoryID=category.categoryID) WHERE post.categoryID=?"; $stmt = $con->prepare($sql); $stmt->bind_param('i', $_GET['categoryID']); $stmt->execute(); $result = $stmt->get_result(); $last_name = ''; while ( $row = $result->fetch_assoc() ) { if ( $last_name != $row['postTitle'] ) { echo $row['postTitle']; $last_name = $row['postTitle']; } echo $row['postDesc']; } ?>