Jump to content

OOP mysql select.


Domcsore

Recommended Posts

Hi there, i'm to develop a script that will select my data from my database using OOP but instead of going calling the table from the straight from the query e.g

 

SELECT * FROM users

 

I have it so the variable is in the function name like:

 

public function dbselect($table, $rows = "*", $where = null, $order = null){
		$q = 'SELECT '.$rows.' FROM '.$table;
		if($where != null){
			$q .= ' WHERE '.$where;
		}
		if($order != null){
			$q .= ' ORDER BY '.$order;
		}
		$query = @mysql_query($q);
}

 

but I cannot seem to come up with a way to call the data. Normally as you know you would have the

$row = mysql_fetch_array($query)

and then you could call it by using

$row['username']

but as it will change it wont have the same column names all the time.

 

I was trying to come up with a way to call them with arrays but I cannot figure it out. Any ideas? Cheers

 

Dom Sore

 

(Sorry if it doesn't make much sense, im confused about it haha)

 

 

Link to comment
Share on other sites

The last line of the function needs to be something like

$this->query = @mysql_query($q);

 

Then

$row = mysql_fetch_array($this->query)

will work if the line is inside a function in the same class as the function 'dbselect'

Link to comment
Share on other sites

Sorry, it is in a class. The code for it so far is:

<?php
class globalconf{
/** DEFINE VARIABLES **/
public $ini;

/** CONSTRUCT FUNCTION **/
public function __construct(){

	/** PARSING THE INI **/
	$this->ini = parse_ini_file('config.ini');

	/** CONNECT TO DATABASE **/
	$con = @mysql_connect($this->ini['dbHost'],$this->ini['dbUser'],$this->ini['dbPass']);
	if(!$con){
		die('Could not connect to host: '.mysql_error());
	}else{
		$selectdb = @mysql_select_db($this->ini['dbName'],$con);
		if(!$selectdb){
			die('Could not connect to database: '.mysql_error());
		}
	}
}

/** DATABASE FUNCTIONS START HERE **/
public function dbselect($table, $rows = "*", $where = null, $order = null){
		$q = 'SELECT '.$rows.' FROM '.$table;
		if($where != null){
			$q .= ' WHERE '.$where;
		}
		if($order != null){
			$q .= ' ORDER BY '.$order;
		}
		$query = @mysql_query($q);		
}	
}
?>

 

Link to comment
Share on other sites

After the line 'public $ini;'

Put 'private $query;'

 

and the last line of the dbselect function change from

$query = @mysql_query($q); to $this->query = @mysql_query($q);

 

Now you can create another function like so:

public function fetch_array()
{
  return mysql_fetch_array($this->query);
}

 

This will return the results you after  ;D

Link to comment
Share on other sites

you need to make sure the fetch_array function is in the class.

 

also i good idea to output the SQL instead on executing it to check it right.

 

Might be an idea to remove the 'at' at the end of mysql_query(), if the SQL is correct then it wont produce an error.

 

Link to comment
Share on other sites

I have tried this:

 

<?php
class globalconf{
/** DEFINE VARIABLES **/
public $ini;
private $query;
private $queryresult;

/** CONSTRUCT FUNCTION **/
public function __construct(){

	/** PARSING THE INI **/
	$this->ini = parse_ini_file('config.ini');

	/** CONNECT TO DATABASE **/
	$con = @mysql_connect($this->ini['dbHost'],$this->ini['dbUser'],$this->ini['dbPass']);
	if(!$con){
		die('Could not connect to host: '.mysql_error());
	}else{
		$selectdb = @mysql_select_db($this->ini['dbName'],$con);
		if(!$selectdb){
			die('Could not connect to database: '.mysql_error());
		}
	}
}

/** DATABASE FUNCTIONS START HERE **/
public function dbselect($table, $rows = "*", $where = null, $order = null){
		$q = 'SELECT '.$rows.' FROM '.$table;
		if($where != null){
			$q .= ' WHERE '.$where;
		}
		if($order != null){
			$q .= ' ORDER BY '.$order;
		}
		$this->query = @mysql_query($q);

		while ($this->queryresult = mysql_fetch_assoc($this->query))
		{
			echo $this->queryresult;	
		}
}
}
?>

 

 

but now im getting the output:

 

ArrayArray

 

haha this is a struggle.

Link to comment
Share on other sites

Also, writing an OOP class is a somewhat advanced programming topic. If you are not comfortable enough with which mysql_ functions to use to fetch a row from a result set and know that you have an array at that point, you are not ready to be writing an OOP class.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.