Skip to content
View in the app

A better way to browse. Learn more.

Web Designer Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP coding problem

Featured Replies

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!

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

  • 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.

  • 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

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;
}

  • 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.

  • 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.

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.

  • 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.

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.

  • 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

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.