Chevy Posted August 20, 2006 Share Posted August 20, 2006 It is really early and I need to figure out a problem I am having...here is my code:[code]<?phpsession_start();if ($_SESSION['logged']==yes){}else {echo "Please login!";exit;}mysql_connect("localhost", "_real", "hidden") or die(mysql_error());mysql_select_db("_real") or die(mysql_error());$username = $_SESSION['username'];$id = $_GET['id'];$topicid = $_GET['topicid'];$query = "SELECT * FROM reply WHERE topicid='$topicid' AND groupid='$id'"; $result = mysql_query($query) or die(mysql_error());$query2 = "SELECT * FROM users WHERE username='$username'"; $result2 = mysql_query($query2) or die(mysql_error());$user = mysql_fetch_array($result2);echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\">";while($main = mysql_fetch_array($result)){echo '<tr><td style="border:1px solid black;" width="100"><center>';echo "<b>";echo $main['poster'];echo "</b><br>";echo "<img src=\"";echo $user['avatar'];echo "\"><br>Posts: <b>";echo $user['posts'];echo "</b></center></td>";echo '<td style="border:1px solid black;" width="450">';echo "Posted On: <i>";echo $main['time'];echo "</i><hr>";echo $main['message'];echo "</td></tr>";}echo "</table>";?>[/code]Okay now when the user posts it adds 1 to a table called users, but they are all the same for every user when it shows up on the page (the post count is the same) and help?Yes I know my code is messy ;D Quote Link to comment Share on other sites More sharing options...
hitman6003 Posted August 20, 2006 Share Posted August 20, 2006 How are you tracking the number of posts a user makes?Cleaner, more readable version:[code]<?phpsession_start();if ($_SESSION['logged'] != "yes"){ echo "Please login!"; exit;}mysql_connect("localhost", "_real", "hidden") or die(mysql_error());mysql_select_db("_real") or die(mysql_error());$username = $_SESSION['username'];$id = $_GET['id'];$topicid = $_GET['topicid'];$query = "SELECT * FROM reply WHERE topicid='$topicid' AND groupid='$id'"; $result = mysql_query($query) or die(mysql_error());$query2 = "SELECT * FROM users WHERE username='$username'"; $result2 = mysql_query($query2) or die(mysql_error());$user = mysql_fetch_array($result2);echo " <table border=\"0\" cellspacing=\"1\" cellpadding=\"1\">";while($main = mysql_fetch_array($result)) { echo ' <tr> <td style="text-align: center; border:1px solid black;" width="100"> <b>' . $main['poster'] . '</b><br> <img src="' . $user['avatar'] . '"><br> Posts: <b>' . $user['posts'] . '</b> </td> <td style="border:1px solid black;" width="450"> Posted On: <i>' . $main['time'] . '</i><hr> ' . $main['message'] . ' </td> </tr>';}echo "</table>";?>[/code] Quote Link to comment Share on other sites More sharing options...
Chevy Posted August 20, 2006 Author Share Posted August 20, 2006 I have a table called users and when they post it adds one to the row in users called posts Quote Link to comment Share on other sites More sharing options...
hitman6003 Posted August 20, 2006 Share Posted August 20, 2006 what is the query you are using for that? Quote Link to comment Share on other sites More sharing options...
Chevy Posted August 20, 2006 Author Share Posted August 20, 2006 [code]if (isset($_POST['submit'])){mysql_query("INSERT INTO reply (groupid, topicid, poster, message, time) VALUES('$groupid', '$topicid', '$username', '$message', '$time') ");$posts = $user['posts']++;mysql_query("UPDATE users SET posts='$posts' WHERE username='$username'") or die(mysql_error());}[/code] Quote Link to comment Share on other sites More sharing options...
Chevy Posted August 20, 2006 Author Share Posted August 20, 2006 Does anyone know how I could do this? Quote Link to comment Share on other sites More sharing options...
hitman6003 Posted August 20, 2006 Share Posted August 20, 2006 Try this:[code]<?phpsession_start();if ($_SESSION['logged'] != "yes"){ echo "Please login!"; exit;}mysql_connect("localhost", "_real", "hidden") or die(mysql_error());mysql_select_db("_real") or die(mysql_error());$username = $_SESSION['username'];$id = $_GET['id'];$topicid = $_GET['topicid'];$query = "SELECT * FROM reply LEFT JOIN users where reply.poster = users.username WHERE topicid='$topicid' AND groupid='$id'"; $result = mysql_query($query) or die(mysql_error());echo " <table border=\"0\" cellspacing=\"1\" cellpadding=\"1\">";while($main = mysql_fetch_array($result)) { echo ' <tr> <td style="text-align: center; border:1px solid black;" width="100"> <b>' . $main['poster'] . '</b><br> <img src="' . $main['avatar'] . '"><br> Posts: <b>' . $main['posts'] . '</b> </td> <td style="border:1px solid black;" width="450"> Posted On: <i>' . $main['time'] . '</i><hr> ' . $main['message'] . ' </td> </tr>';}echo "</table>";[/code]You were using the same user info for all of the replies. Quote Link to comment Share on other sites More sharing options...
Chevy Posted August 20, 2006 Author Share Posted August 20, 2006 Hmm I am getting this errorYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where reply.poster = users.username WHERE topicid='1' AND groupid='1'' at line 1 Quote Link to comment Share on other sites More sharing options...
hitman6003 Posted August 20, 2006 Share Posted August 20, 2006 Sorry, wrong SQL syntax. Your query should be:[code]SELECT * FROM reply LEFT JOIN users ON reply.poster = users.username WHERE topicid='$topicid' AND groupid='$id'[/code] Quote Link to comment Share on other sites More sharing options...
Chevy Posted August 20, 2006 Author Share Posted August 20, 2006 Hey, Thank you a lot! You are very cool in my book now, :)Thanks again! Quote Link to comment 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.