php - MYSQL INNER JOIN syntax error -
i have been trying fix issue on since morning :)
i have 2 tables. table1= post table2=users. need extract data both tables. searched how use inner join, found codes. run query inside phpmyadmin , works fine here sql query
select post.topic_id, post.category_id, post.topic_id, post.post_creator, post.post_date, post.post_content, users.username, users.gender, users.id post inner join users on post.post_creator=users.id post.post_creator=users.id , post.topic_id=19 order post.post_date desc
but when use sql query inside php gives me error
you have error in sql syntax; check manual corresponds mysql server version right syntax use near 'inner join users on post.post_creator=users.id order post.post_date asc' @ line 1
below php code
<?php include_once './forum_scripts/connect_to_mysql.php'; $cid = $_get['cid']; if(isset($_session['uid'])){ $logged = " | <a href ='create_topic.php?cid=".$cid."'>click here create new topic</a> "; }else{ $logged = " | please log in create topics in forum."; } $tid = $_get['tid']; $sql = "select * topics category_id='".$cid."' , id='".$tid."' limit 1"; $res = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($res) == 1){ echo "<table width='100%'> "; if(isset($_session['uid'])){ echo "<tr><td colspan='2'><input type='submit' value='add reply' onclick=\"window.location = 'post_reply.php?cid=".$cid."&tid=".$tid."'\" /> | <a href = 'http://amaforum.net63.net/'>return forum index</a><hr />"; }else{ echo "<tr><td colspan='2'><p>please log in add reply</p><hr /></td>";} while ($row = mysql_fetch_assoc($res)){ $sql2 = "select post.topic_id, post.category_id, post.topic_id, post.post_creator, post.post_date, post.post_content, users.username, users.gender, users.id" . "from post inner join users on post.post_creator=users.id order post.post_date asc" ; $res2 = mysql_query($sql2) or die(mysql_error()); while ($row2 = mysql_fetch_assoc($res2)) { echo "<tr><td valign='top' style='border:2px solid #000000'><div style='min-height: 125px;'>".$row['topic_title']."<br /> ".$row2['post_creator']." - ".$row2['post_date']."<hr />".$row2['post_content']."</div></td>" . "<td width='200' valign='top' style='border: 1px solid #000000;'>" . "<input id='".d_text."' type='".text."' name='".the_creator."' value='".$row2['post_creator']."' >" . "echo '$user_info' " . "</td></tr>" . "<tr><td colspan='2'><hr /></td></tr> "; } $old_views = $row['topic_views']; $new_views = $old_views + 1; $sql3 = "update topics set topic_views='".$new_views."' category_id='".$cid."' , id='".$tid."' limit 1 "; $res3 = mysql_query($sql3) or die (mysql_error()); } echo "</table>"; }else{ echo "<p>this topic not exist</p>"; } mysql_close(); ?>
i can work , need guys..
thanks in advance
this should solve problem (i've added space missing when concatenated 2 lines of sql query):
<?php include_once './forum_scripts/connect_to_mysql.php'; $cid = $_get['cid']; if(isset($_session['uid'])){ $logged = " | <a href ='create_topic.php?cid=".$cid."'>click here create new topic</a> "; }else{ $logged = " | please log in create topics in forum."; } $tid = $_get['tid']; $sql = "select * topics category_id='".$cid."' , id='".$tid."' limit 1"; $res = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($res) == 1){ echo "<table width='100%'> "; if(isset($_session['uid'])){ echo "<tr><td colspan='2'><input type='submit' value='add reply' onclick=\"window.location = 'post_reply.php?cid=".$cid."&tid=".$tid."'\" /> | <a href = 'http://amaforum.net63.net/'>return forum index</a><hr />"; }else{ echo "<tr><td colspan='2'><p>please log in add reply</p><hr /></td>";} while ($row = mysql_fetch_assoc($res)){ $sql2 = "select post.topic_id, post.category_id, post.topic_id, post.post_creator, post.post_date, post.post_content, users.username, users.gender, users.id " . "from post inner join users on post.post_creator=users.id order post.post_date asc" ; $res2 = mysql_query($sql2) or die(mysql_error()); while ($row2 = mysql_fetch_assoc($res2)) { echo "<tr><td valign='top' style='border:2px solid #000000'><div style='min-height: 125px;'>".$row['topic_title']."<br /> ".$row2['post_creator']." - ".$row2['post_date']."<hr />".$row2['post_content']."</div></td>" . "<td width='200' valign='top' style='border: 1px solid #000000;'>" . "<input id='".d_text."' type='".text."' name='".the_creator."' value='".$row2['post_creator']."' >" . "echo '$user_info' " . "</td></tr>" . "<tr><td colspan='2'><hr /></td></tr> "; } $old_views = $row['topic_views']; $new_views = $old_views + 1; $sql3 = "update topics set topic_views='".$new_views."' category_id='".$cid."' , id='".$tid."' limit 1 "; $res3 = mysql_query($sql3) or die (mysql_error()); } echo "</table>"; }else{ echo "<p>this topic not exist</p>"; } mysql_close(); ?>
to avoid issues in future, it's practice log sql that's being executed in code somewhere, or echo onto web page while testing. way you'll debug issues this.
Comments
Post a Comment