June 29, 200818 yr I have another thread on here as I thought my problem was initially a SQL problem but I have tested the SQL command in my function and the compiler has signaled the SQL is fine. So the problem must be in the php coding of my site, my function that I am having problems with is : function getForum($id) { $sql = "SELECT forum_name as name, forum_desc as description, forum_moderator as formod FROM forum_forum WHERE id = '$id'"; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); return $row; } I have tried everything and had no luck at all, please help!
June 29, 200818 yr I have another thread on here as I thought my problem was initially a SQL problem but I have tested the SQL command in my function and the compiler has signaled the SQL is fine. So the problem must be in the php coding of my site, my function that I am having problems with is : function getForum($id) { $sql = "SELECT forum_name as name, forum_desc as description, forum_moderator as formod FROM forum_forum WHERE id = '$id'"; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); return $row; } I have tried everything and had no luck at all, please help! You're missing some code there: .... $result = mysql_query($sql); if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); //or return FALSE; } else { $row = mysql_fetch_array($result); return $row; } This is from the example on php.net for mysql_query
June 29, 200818 yr Author You're missing some code there: .... $result = mysql_query($sql); if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); //or return FALSE; } else { $row = mysql_fetch_array($result); return $row; } This is from the example on php.net for mysql_query Thanks for the suggestion but there's still the exact same error even with the code added as you'd suggested.
June 29, 200818 yr Author so what is the 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 'mod FROM forum_forum WHERE id = 1' at line 1 SELECT forum_name as name, forum_desc as description, forum_moderator as mod FROM forum_forum WHERE id = 1
June 30, 200818 yr I have another thread on here as I thought my problem was initially a SQL problem but I have tested the SQL command in my function and the compiler has signaled the SQL is fine. So the problem must be in the php coding of my site, my function that I am having problems with is : function getForum($id) { $sql = "SELECT forum_name as name, forum_desc as description, forum_moderator as formod FROM forum_forum WHERE id = '$id'"; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); return $row; } I have tried everything and had no luck at all, please help! function getForum($id) { $sql = "SELECT `forum_name` as name, `forum_desc` as description, `forum_moderator` as formod FROM `forum_forum` WHERE `id` = '$id'"; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); return $row; }
June 30, 200818 yr Author function getForum($id) { $sql = "SELECT `forum_name` as name, `forum_desc` as description, `forum_moderator` as formod FROM `forum_forum` WHERE `id` = '$id'"; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); return $row; } It still comes up with the same error. Thanks for the help anyway.
June 30, 200818 yr Author Ill put up the full codes and see if there's something I am missing but I really don't think I am. The address bar looks like this : http://www.mywebsite.com/viewforum.php?f=1 Giving 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 'mod FROM forum_forum WHERE id = 1' at line 1 SELECT forum_name as name, forum_desc as description, forum_moderator as mod FROM forum_forum WHERE id = 1 viewforum.php looks like : <?php require_once ‘conn.php’; require_once ‘functions.php’; require_once ‘http.php’; if (!isset($_GET[‘f’])) redirect(‘index.php’); require_once ‘header.php’; $forumid = $_GET[‘f’]; $forum = getForum($forumid); echo breadcrumb($forumid, “F”); if (isset($_GET[‘page’])) { $page = $_GET[‘page’]; } else { $page = 1; } $limit = $admin[‘pageLimit’][‘value’]; if ($limit == “”) $limit = 25; $start = ($page - 1) * $admin[‘pageLimit’][‘value’]; $sql = “CREATE TEMPORARY TABLE tmp ( “ . “topic_id INT(11) NOT NULL DEFAULT 0, “ . “postdate datetime NOT NULL default ‘0000-00-00 00:00:00’)”; mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $sql = “LOCK TABLES forum_users READ,forum_posts READ”; mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $sql = “INSERT INTO tmp SELECT topic_id, MAX(date_posted) “ . “FROM forum_posts “ . “WHERE forum_id = $forumid “ . “AND topic_id > 0 “ . “GROUP BY topic_id”; mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $sql = “UNLOCK TABLES”; mysql_query($sql) or die(mysql_error().”<br>”.$sql); //die(‘stop’); $sql = “SELECT SQL_CALC_FOUND_ROWS “ . “t.id as topic_id, t.subject as t_subject, “ . “u.name as t_author, count(p.id) as numreplies, “ . “t.date_posted as t_posted, tmp.postdate as re_posted “ . “FROM forum_users u “ . “JOIN forum_posts t “ . “ON t.author_id = u.id “ . “LEFT JOIN tmp “ . “ON t.id = tmp.topic_id “ . “LEFT JOIN forum_posts p “ . “ON p.topic_id = t.id “ . “WHERE t.forum_id = $forumid “ . “AND t.topic_id = 0 “ . “GROUP BY t.id “ . “ORDER BY re_posted DESC “ . “LIMIT $start, $limit”; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $numrows = mysql_num_rows($result); if ($numrows == 0) { $msg = “There are currently no posts. Would you “ . “like to be the first person to create a thread?”; $title = “Welcome to “ . $forum[‘name’]; $dest = “compose.php?forumid=” . $forumid; $sev = “Info”; $message = msgBox($msg,$title,$dest,$sev); echo $message; } else { if (isset($_SESSION[‘user_id’])) { echo topicReplyBar(0, $_GET[‘f’], “right”); } echo “<table class=\”forumtable\” cellspacing=\”0\” “; echo “cellpadding=\”2\”><tr>”; echo “<th class=\”thread\”>Thread</th>”; echo “<th class=\”author\”>Author</th>”; echo “<th class=\”replies\”>Replies</th>”; echo “<th class=\”lastpost\”>Last Post</th>”; echo “</tr>”; $rowclass = “”; while ($row = mysql_fetch_array($result)) { $rowclass = ($rowclass == “row1”?”row2”:”row1”); if ($row[‘re_posted’] == “”) { $lastpost = $row[‘t_posted’]; } else { $lastpost = $row[‘re_posted’]; } if ((isset($_SESSION[‘user_id’])) and ($_SESSION[‘last_login’] < $lastpost)) { $newpost = true; } else { $newpost = false; } echo “<tr class=\”$rowclass\”>”; echo “<td class=\”thread\”>” . ($newpost?NEWPOST.” ”:””); echo “<a href=\”viewtopic.php?t=”; echo $row[‘topic_id’] . “\”>” . $row[‘t_subject’] . “</a></td>”; echo “<td class=\”author\”>” . $row[‘t_author’] . “</td>”; echo “<td class=\”replies\”>” . $row[‘numreplies’] . “</td>”; echo “<td class=\”lastpost\”>” . $lastpost . “</td>”; echo “</tr>\n”; } echo “</table>”; echo paginate($limit); echo “<p>” . NEWPOST . “ = New Post(s)</p>”; } $sql = “DROP TABLE tmp”; mysql_query($sql) or die(mysql_error().”<br>”.$sql); require_once ‘footer.php’; ?> And function.php looks like : <?php function trimBody($theText, $lmt=100, $s_chr=”@@@”, $s_cnt=1) { $pos = 0; $trimmed = FALSE; for ($i = 1; $i <= $s_cnt; $i++) { if ($tmp = strpos($theText, $s_chr, $pos)) { $pos = $tmp; $trimmed = TRUE; } else { $pos = strlen($theText); $trimmed = FALSE; break; } } $theText = substr($theText, 0, $pos); if (strlen($theText) > $lmt) { $theText = substr($theText, 0, $lmt); $theText = substr($theText, 0, strrpos($theText,’ ‘)); $trimmed = TRUE; } if ($trimmed) $theText .= ‘...’; return $theText; } function msgBox($m, $t, $d=”index.php”, $s=”Info”) { $theMsg = “<div id=\”requestConfirm” . $s . “\”>”; $theMsg .= “<h2>” . $t . “</h2>\n”; $theMsg .= “<p>” . $m . “</p>”; $theMsg .= “<p><a href=\”” . $d . “\” “; $theMsg .= “class=\”buttonlink\”>”; $theMsg .= “Yes</a>”; $theMsg .= “<a href=\”index.php\” class=\”buttonlink\”>”; $theMsg .= “No</a></p>”; $theMsg .= “</div>”; return $theMsg; } function getForum($id) { $sql = "SELECT `forum_name` as name, `forum_desc` as description, `forum_moderator` as formod FROM `forum_forum` WHERE `id` = '$id'"; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); return $row; } function getForumID($topicid) { $sql = “SELECT forum_id FROM forum_posts WHERE id=$topicid”; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); return $row[‘forum_id’]; } function breadcrumb($id, $getfrom=”F”) { $sep = “<span class=\”bcsep\”>”; $sep .= “ · “; $sep .= “</span>”; if ($getfrom == “P”) { $sql = “SELECT forum_id, subject FROM forum_posts “ . “WHERE id = “ . $id; $result = mysql_query($sql) or die(mysql_error() . “<br>” . $sql); $row = mysql_fetch_array($result); $id = $row[‘forum_id’]; $topic = $row[‘subject’]; } $row = getForum($id); $bc = “<a href=\”index.php\”>Home</a>$sep”; switch ($getfrom) { case “P”: $bc .= “<a href=\”viewforum.php?f=$id\”>”.$row[‘name’] . “</a>$sep” . $topic; break; case “F”: $bc .= $row[‘name’]; break; } return “<h4 class=\”breadcrumb\”>” . $bc . “</h4>”; } function showTopic($topicid, $showfull=TRUE) { global $conn; global $userid; global $limit; echo breadcrumb($topicid, “P”); if (isset($_GET[‘page’])) { $page = $_GET[‘page’]; } else { $page = 1; } if ($limit == “”) $limit = 25; $start = ($page - 1) * $limit; if (isset($_SESSION[‘user_id’])) { echo topicReplyBar($topicid, getForumID($topicid), “right”); } $sql = “SELECT SQL_CALC_FOUND_ROWS “. “p.id, p.subject, p.body, p.date_posted, “ . “p.date_updated, u.name as author, u.id as author_id, “ . “u.signature as sig, c.count as postcount, “ . “p.forum_id as forum_id, f.forum_moderator as formod, “ . “p.update_id, u2.name as updated_by “ . “FROM forum_forum f “ . “JOIN forum_posts p “ . “ON f.id = p.forum_id “ . “JOIN forum_users u “ . “ON u.id = p.author_id “ . “LEFT JOIN forum_users u2 “ . “ON u2.id = p.update_id “ . “LEFT JOIN forum_postcount c “ . “ON u.id = c.user_id “ . “WHERE (p.topic_id = $topicid OR p.id = $topicid) “ . “ORDER BY p.topic_id, p.date_posted “. “LIMIT $start,$limit”; $result = mysql_query($sql, $conn) or die(mysql_error() . “<br>” . $sql); $pagelinks = paginate($limit); if (mysql_num_rows($result) == 0) { $msg = “There are currently no posts. Would you “ . “like to be the first person to create a thread?”; $title = “No Posts...”; $dest = “compose.php?forumid=” . $forumid; $sev = “Info”; $message = msgBox($msg,$title,$dest,$sev); echo $message; } else { echo “<table class=\”forumtable\” cellspacing=\”0\” “; echo “cellpadding=\”2\”><tr>”; echo “<th class=\”author\”>Author</th>”; echo “<th class=\”post\”>Post</th>”; echo “</tr>”; $rowclass = “”; while ($row = mysql_fetch_array($result)) { $lastupdate = “”; $editlink = “”; $dellink = “”; $replylink = “ ”; $pcount = “”; $pdate = “”; $sig = “”; if ($showfull) { $body = $row[‘body’]; if (isset($_SESSION[‘user_id’])) { $replylink = “<a href=\”compose.php?forumid=” . $row[‘forum_id’] . “&topicid=$topicid&reid=” . $row[‘id’] . “\” class=\”buttonlink\”>REPLY</a> ”; } else { $replylink = “”; } if ($row[‘update_id’] > 0) { $lastupdate = “<p class=\”smallNote\”>Last updated: “ . $row[‘date_updated’] . “ by “ . $row[‘updated_by’] . “</p>”; } if (($userid == $row[‘author_id’]) or ($userid == $row[‘mod’]) or ($_SESSION[‘access_lvl’] > 2)) { $editlink = “<a href=\”compose.php?a=edit&post=”.$row[‘id’]. “\” class=\”buttonlink\”>EDIT</a> ”; $dellink = “<a href=\”transact-affirm.php?action=deletepost&”. “id=” . $row[‘id’] . “\” class=\”buttonlink\”>DELETE</a> ”; } $pcount = “<br><span class=\”textsmall\”>Posts: “ . ($row[‘postcount’]==””?”0”:$row[‘postcount’]) . “</span>”; $pdate = $row[‘date_posted’]; $sig = ($row[‘sig’] != “”?”<p class=\”sig\”>”. bbcode(nl2br($row[‘sig’])):””).”</p>”; } else { $body = trimBody($body); } $rowclass = ($rowclass == “row1”?”row2”:”row1”); echo “<tr class=\”$rowclass\”>”; echo “<td class=\”author\”>” . $row[‘author’]; echo $pcount; echo “</td><td class=\”post\”><p>”; if (isset($_SESSION[‘user_id’]) and ($_SESSION[‘last_login’] < $row[‘date_posted’])) { echo NEWPOST . “ “; } if (isset($_GET[‘page’])) { $pagelink = “&page=” . $_GET[‘page’]; } else { $pagelink = “”; } echo “<a name=\”post” . $row[‘id’] . “\” href=\”viewtopic.php?t=” . $topicid .$pagelink .”#post”. $row[‘id’] . “\”>”.POSTLINK.”</a>”; if (isset($row[‘subject’])) { echo “ <strong>” . $row[‘subject’] . “</strong>”; } echo “</p><p>” . bbcode(nl2br(htmlspecialchars($body))) . “</p>”; echo $sig; echo $lastupdate; echo “</td></tr>”; echo “<tr class=\”$rowclass\”><td class=\”authorfooter\”>”; echo $pdate . “</td><td class=\”threadfooter\”>”; echo $replylink; echo $editlink; echo $dellink; echo “</td></tr>\n”; } echo “</table>”; echo $pagelinks; echo “<p>”.NEWPOST.” = New Post ”; echo POSTLINK.” = Post link (use to bookmark)</p>”; } } function isParent($page) { $currentpage = $_SERVER[‘PHP_SELF’]; if (strpos($currentpage, $page) === false) { return FALSE; } else { return TRUE; } } function topicReplyBar($topicid,$forumid,$pos=”right”) { $html = “<p class=\”buttonBar” . $pos . “\”>”; if ($topicid > 0) { $html .= “<a href=\”compose.php?forumid=$forumid” . “&topicid=$topicid&reid=$topicid\” “ . “class=\”buttonlink\”>Reply to Thread</a>”; } if ($forumid > 0) { $html .= “<a href=\”compose.php?forumid=$forumid\” “ . “class=\”buttonlink\”>New Thread</a>”; } $html .= “</p>”; return $html; } function userOptionList($level) { $sql = “SELECT id, name, access_lvl “ . “FROM forum_users “ . “WHERE access_lvl=” . $level . “ “ . “ORDER BY name”; $result = mysql_query($sql) or die(mysql_error()); while ($row = mysql_fetch_array($result)) { echo “<option value=\””. $row[‘id’] . “\”>” . htmlspecialchars($row[‘name’]) . “</option>”; } } function paginate($limit=10) { global $admin; $sql = “SELECT FOUND_ROWS();”; $result = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_array($result); $numrows = $row[0]; $pagelinks = “<div class=\”pagelinks\”>”; if ($numrows > $limit) { if(isset($_GET[‘page’])){ $page = $_GET[‘page’]; } else { $page = 1; } $currpage = $_SERVER[‘PHP_SELF’] . “?” . $_SERVER[‘QUERY_STRING’]; $currpage = str_replace(“&page=”.$page,””,$currpage); if($page == 1){ $pagelinks .= “<span class=\”pageprevdead\”>< PREV</span>”; }else{ $pageprev = $page - 1; $pagelinks .= “<a class=\”pageprevlink\” href=\”” . $currpage . “&page=” . $pageprev . “\”>< PREV</a>”; } $numofpages = ceil($numrows / $limit); $range = $admin[‘pageRange’][‘value’]; if ($range == “” or $range == 0) $range = 7; $lrange = max(1,$page-(($range-1)/2)); $rrange = min($numofpages,$page+(($range-1)/2)); if (($rrange - $lrange) < ($range - 1)) { if ($lrange == 1) { $rrange = min($lrange + ($range-1), $numofpages); } else { $lrange = max($rrange - ($range-1), 0); } } if ($lrange > 1) { $pagelinks .= “..”; } else { $pagelinks .= “ ”; } for($i = 1; $i <= $numofpages; $i++){ if ($i == $page) { $pagelinks .= “<span class=\”pagenumdead\”>$i</span>”; } else { if ($lrange <= $i and $i <= $rrange) { $pagelinks .= “<a class=\”pagenumlink\” “ . “href=\”” . $currpage . “&page=” . $i . “\”>” . $i . “</a>”; } } } if ($rrange < $numofpages) { $pagelinks .= “..”; } else { $pagelinks .= “ ”; } if(($numrows - ($limit * $page)) > 0){ $pagenext = $page + 1; $pagelinks .= “<a class=\”pagenextlink\” href=\”” . $currpage . “&page=” . $pagenext . “\”>NEXT ></a>”; } else { $pagelinks .= “<span class=\”pagenextdead\”>NEXT ></span>”; } } else { $pagelinks .= “<span class=\”pageprevdead\”>< “ . “PREV</span> ”; $pagelinks .= “<span class=\”pagenextdead\”> “ . “NEXT ></span> ”; } $pagelinks .= “</div>”; return $pagelinks; } function bbcode($data) { $sql = “SELECT * FROM forum_bbcode”; $result = mysql_query($sql); if (mysql_num_rows($result) > 0) { while($row = mysql_fetch_array($result)) { $bbcode[‘tpl’][] = “/” . html_entity_decode($row[‘template’],ENT_QUOTES). “/i”; $bbcode[‘rep’][] = html_entity_decode($row[‘replacement’],ENT_QUOTES); } $data1 = preg_replace($bbcode[‘tpl’],$bbcode[‘rep’],$data); $count = 1; while (($data1 != $data) and ($count < 4)) { $count++; $data = $data1; $data1 = preg_replace($bbcode[‘tpl’],$bbcode[‘rep’],$data); } } return $data; } ?> I really am stumped with this one, think it's going to go down as an unsolved mystery and just scrap it.
June 30, 200818 yr In your first post you had the $id down as your forum_id in your SQL. But then in your php you are setting $forum_id = $_GET['f']. Before your SQL statment add the following to a new line. var_dump($id); If that is null then you haven't defined $id which backs up my first point.
June 30, 200818 yr Author In your first post you had the $id down as your forum_id in your SQL. But then in your php you are setting $forum_id = $_GET['f']. Before your SQL statment add the following to a new line. var_dump($id); If that is null then you haven't defined $id which backs up my first point. Just gives the exact same eroor message I'm affraid.
June 30, 200818 yr Paste you SQL statement straight in to MYSQL through command prompt or PHPMyAdmin and see if you get an error. If not then there is something wrong with the syntax within PHP.
June 30, 200818 yr Author Paste you SQL statement straight in to MYSQL through command prompt or PHPMyAdmin and see if you get an error. If not then there is something wrong with the syntax within PHP. Thanks for perciviring with this mate, I managed to get one of the boys at work to sort it. It's alot easier when it's right there in front of you. Thanks again.
Create an account or sign in to comment