Jump to content


Photo

Erro Muito Estranho Na Query


  • Faça o login para participar
4 replies to this topic

#1 aaa

aaa

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 08/10/2008, 18:01

Olá, preciso muito desse script de forum, mas está dando o seguinte erro:

Fatal error: Call to a member function execute() on a non-object in /home/a5787961/public_html/forum.php on line 19


A linha 19 está em negrito:::::

<?php
include("lib.php");
define("PAGENAME", "Forum");
$player = check_user($secret_key, $db);
include("templates/private_header.php");

if (isset($_GET["do"])) {
$do = explode(":",$_GET["do"]);

if ($do[0] == "thread") { showthread($do[1], $do[2]); }
elseif ($do[0] == "new") { newthread(); }
elseif ($do[0] == "reply") { reply(); }
elseif ($do[0] == "list") { donothing($do[1]); }

} else { donothing(0); }

function donothing($start=0) {

$query = $db->execute("select * from `forum` where `parent`=`0` order by `newpostdate` desc limit 20");
$page = "<table width=\"100%\"><tr><td style=\"padding:1px; background-color:black;\"><table width=\"100%\" style=\"margins:0px;\" cellspacing=\"1\" cellpadding=\"3\"><tr><th colspan=\"3\" style=\"background-color:#dddddd;\"><center><a href=\"forum.php?do=new\">New Thread</a></center></th></tr><tr><th width=\"50%\" style=\"background-color:#dddddd;\">Thread</th><th width=\"10%\" style=\"background-color:#dddddd;\">Replies</th><th style=\"background-color:#dddddd;\">Last Post</th></tr>\n";
$count = 1;
if (mysql_num_rows($query) == 0) {
$page .= "<tr><td style=\"background-color:#ffffff;\" colspan=\"3\"><b>No threads in forum.</b></td></tr>\n";
} else {
while ($row = mysql_fetch_array($query)) {
if ($count == 1) {
$page .= "<tr><td style=\"background-color:#ffffff;\"><a href=\"forum.php?do=thread:".$row["id"].":0\">".$row["title"]."</a></td><td style=\"background-color:#ffffff;\">".$row["replies"]."</td><td style=\"background-color:#ffffff;\">".$row["newpostdate"]."</td></tr>\n";
$count = 2;
} else {
$page .= "<tr><td style=\"background-color:#eeeeee;\"><a href=\"forum.php?do=thread:".$row["id"].":0\">".$row["title"]."</a></td><td style=\"background-color:#eeeeee;\">".$row["replies"]."</td><td style=\"background-color:#eeeeee;\">".$row["newpostdate"]."</td></tr>\n";
$count = 1;
}
}
}
$page .= "</table></td></tr></table>";

display($page, "Forum");

}

function showthread($id, $start) {

$query = $db->execute("SELECT * FROM `forum` WHERE `id`='$id' OR parent='$id' ORDER BY id LIMIT $start,15");
$query2 = $db->execute("SELECT `title` FROM `forum` WHERE `id`='$id' LIMIT 1");
$row2 = mysql_fetch_array($query2);
$page = "<table width=\"100%\"><tr><td style=\"padding:1px; background-color:black;\"><table width=\"100%\" style=\"margins:0px;\" cellspacing=\"1\" cellpadding=\"3\"><tr><td colspan=\"2\" style=\"background-color:#dddddd;\"><b><a href=\"forum.php\">Forum</a> :: ".$row2["title"]."</b></td></tr>\n";
$count = 1;
while ($row = mysql_fetch_array($query)) {
if ($count == 1) {
$page .= "<tr><td width=\"25%\" style=\"background-color:#ffffff; vertical-align:top;\"><span class=\"small\"><b>".$row["author"]."</b><br /><br />".prettyforumdate($row["postdate"])."</td><td style=\"background-color:#ffffff; vertical-align:top;\">".nl2br($row["content"])."</td></tr>\n";
$count = 2;
} else {
$page .= "<tr><td width=\"25%\" style=\"background-color:#eeeeee; vertical-align:top;\"><span class=\"small\"><b>".$row["author"]."</b><br /><br />".prettyforumdate($row["postdate"])."</td><td style=\"background-color:#eeeeee; vertical-align:top;\">".nl2br($row["content"])."</td></tr>\n";
$count = 1;
}
}
$page .= "</table></td></tr></table><br />";
$page .= "<table width=\"100%\"><tr><td><b>Reply To This Thread:</b><br /><form action=\"forum.php?do=reply\" method=\"post\"><input type=\"hidden\" name=\"parent\" value=\"$id\" /><input type=\"hidden\" name=\"title\" value=\"Re: ".$row2["title"]."\" /><textarea name=\"content\" rows=\"7\" cols=\"40\"></textarea><br /><input type=\"submit\" name=\"submit\" value=\"Submit\" /> <input type=\"reset\" name=\"reset\" value=\"Reset\" /></form></td></tr></table>";

display($page, "Forum");

}

function reply() {

global $userrow;
extract($_POST);
$query = doquery("INSERT INTO 'forum' SET id='',postdate=NOW(),newpostdate=NOW(),author='".$userrow["charname"]."',parent='$parent',replies='0',title='$title',content='$content'", "forum");
$query2 = doquery("UPDATE 'forum' SET newpostdate=NOW(),replies=replies+1 WHERE id='$parent' LIMIT 1", "forum");
header("Location: forum.php?do=thread:$parent:0");
die();

}

function newthread() {

global $userrow;

if (isset($_POST["submit"])) {
extract($_POST);
$query = doquery("INSERT INTO 'forum' SET id='',postdate=NOW(),newpostdate=NOW(),author='".$userrow["charname"]."',parent='0',replies='0',title='$title',content='$content'", "forum");
header("Location: forum.php");
die();
}

$page = "<table width=\"100%\"><tr><td><b>Make A New Post:</b><br /><br/ ><form action=\"forum.php?do=new\" method=\"post\">Title:<br /><input type=\"text\" name=\"title\" size=\"50\" maxlength=\"50\" /><br /><br />Message:<br /><textarea name=\"content\" rows=\"7\" cols=\"40\"></textarea><br /><br /><input type=\"submit\" name=\"submit\" value=\"Submit\" /> <input type=\"reset\" name=\"reset\" value=\"Reset\" /></form></td></tr></table>";
display($page, "Forum");

}

?>



#2 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 08/10/2008, 22:10

Você precisa instanciar a classe para a variável antes, exemplo:
$db=new database("etc...");

Edição feita por: lwirkk, 08/10/2008, 22:12.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#3 aaa

aaa

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 08/10/2008, 22:43

Você precisa instanciar a classe para a variável antes, exemplo:

$db=new database("etc...");


mas nos includes que tem no inicio do código, já tem isso:

include('adodb/adodb.inc.php'); //Include adodb files
$db = &ADONewConnection('mysql'); //Connect to database
$db->Connect($config_server, $config_username, $config_password, $config_database); //Select table

$db->SetFetchMode(ADODB_FETCH_ASSOC); //Fetch associative arrays
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; //Fetch associative arrays
//$db->debug = true; //Debug


O Script usa um tal de adodb

#4 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 09/10/2008, 00:16

Não tenho certeza sobre isso, mas mesmo sendo uma classe instanciada a variável, a variável de dentro da função é diferente da do lado de fora, você teria que instanciar a variável dentro da função ou colcoar ela como global dentro da função.

depois de iniciar a função coloque:
global $db;
não é o recomendado, mas pode dar certo (y)
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#5 aaa

aaa

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado

Posted 09/10/2008, 12:59

Não tenho certeza sobre isso, mas mesmo sendo uma classe instanciada a variável, a variável de dentro da função é diferente da do lado de fora, você teria que instanciar a variável dentro da função ou colcoar ela como global dentro da função.

depois de iniciar a função coloque:

global $db;
não é o recomendado, mas pode dar certo (y)


Não :(, ainda está dando erro...
Alguem pode me mandar outro script de forum super simples, pra eu tentar fazer oque eu quero?




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq