Jump to content

Archived

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

Chevy

A simple question...

Recommended Posts

It is really early and I need to figure out a problem I am having...here is my code:
[code]
<?php
session_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

Share this post


Link to post
Share on other sites
How are you tracking the number of posts a user makes?

Cleaner, more readable version:

[code]<?php
session_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]

Share this post


Link to post
Share on other sites
I have a table called users and when they post it adds one to the row in users called posts

Share this post


Link to post
Share on other sites
[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]

Share this post


Link to post
Share on other sites
Try this:

[code]<?php
session_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.

Share this post


Link to post
Share on other sites
Hmm I am getting this error

You 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

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
Hey, Thank you a lot! You are very cool in my book now, :)

Thanks again!

Share this post


Link to post
Share on other sites

×

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.