I'm getting an error:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
function next_record()
{
$this->myrow = mysql_fetch_array($this->result);
return $this->myrow;
}
Please help!
I'm getting an error:
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
function next_record()
{
$this->myrow = mysql_fetch_array($this->result);
return $this->myrow;
}
Please help!
Can we see the rest of the class, or at least see where $this->result is assigned a value?
class DB
{
function DB ($db_host="",$db_login="",$db_password="",$db_name="")
{
global $DB_HOST;
global $DB_LOGIN;
global $DB_PASSWORD;
global $DB_NAME;
if($db_host == "") $db_host = $DB_HOST;
if($db_login == "") $db_login = $DB_LOGIN;
if($db_password == "") $db_password = $DB_PASSWORD;
if($db_name == "") $db_name = $DB_NAME;
$this->db_link = mysql_connect("$db_host","$db_login","$db_password");
if(!$this->db_link)
die("<font color=red bgcolor=white>Database problem</font>");
mysql_select_db("$db_name",$this->db_link);
}
function query($query)
{
$this->result = mysql_query($query,$this->db_link);
if (mysql_error($this->db_link) != "")
echo "<font color=#256ACE>Error MYSQL: </font><font color=red>" . mysql_error($this->db_link) . "</font><br><font color=#256ACE>Query:</font> <font color=red>$query<br></font>";
else
return $this->result;
}
function next_record()
{
$this->myrow = mysql_fetch_array($this->result);
return $this->myrow;
}
function get($column)
{
return $this->myrow["$column"];
}
function num_rows()
{
return mysql_num_rows($this->result);
}
function insert_id()
{
return mysql_insert_id($this->db_link);
}
}
@mamari, Show us the query that you are trying to execute.
function show_head($lang,$p)
{
$q = new DB;
$q->query("select title from contenu_sections where id = $p");
$q->next_record();
$title = $q->get("title");
$q->query("select title,keyword,description from contenu_config_lang where lang = $lang");
$q->next_record();
if($title == "")
$title = $q->get("title");
$keyword = $q->get("keyword");
$description = $q->get("description");
printf("\n<title>$title</title>\n");
if($keyword != "")
echo "<meta name=\"keywords\" content=\"$keyword\">\n";
if($description != "")
echo "<meta name=\"description\" content=\"$description\">\n";
echo "<script language=javascript>
function pop_win(url,w,h,win_name,scroll)
{
if(scroll)
scroll = 'yes';
else
scroll = 'auto';
var left = (screen.width-w)/2;
var top= (screen.height-h)/2;
window.open(url,win_name,'resizable=yes,scrollbars='+scroll+',menubar=no,status=no,width='+w+',height='+h+',left='+left+',top='+top);
}
</script>";
return;
}
function load_page($p="",$show_section_name=0,$sub=0)
{
global $lang;
global $sub;
$q = new DB;
if(!$sub)
$query = "select default_section_id sec_id from contenu_default_section where section_id = $p order by order_no";
else
$query = "select id sec_id from contenu_sections where master_section = $p order by order_no";
$q->query($query);
$x=0;
if($q->num_rows() != 0)
{
while($q->next_record())
{
$x++;
show_page($q->get("sec_id"),$x,$show_section_name);
}
}
else
show_page($p,'',$show_section_name);
return $p;
}
Is it possible that you have to do this?:
$q->query("select title from contenu_sections where id = '$p'");
I've come across this problem and the query was not accepting the variable unless I added inverted single commas.
Check through by adding mysql_error() in executing query.
On line 21, replace this part.
$this->result = mysql_query($query,$this->db_link) or die(mysql_error());
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.