Jump to content

Functions returning arrays with mysql data


criostage

Recommended Posts

Hello, i m doing a small site for personal use where i m using php and mysql as a database. I m still learning how to proper doing things so far so good but i been bashing my head against this small issue. I have mainly 1 class for all MySQL queries inserted into functions for example connect() will start the mysql connection uppon the Class/Object creation, safequery() will clear out the mysql injection problem, so on so on ... what i m trying to do, and its where i m stuck, is get a list (array) of data from MySQL to build an drop down menu, but i m not able to pass the total of the array values into the external piece of code that builds the combobox. If i do this i can get the list of all the values inside the array (witch are correct):

 

function getanimestatus(){
$query = mysql_query("SELECT designation FROM agi_status");
while($result = mysql_fetch_array($query)){
         echo $result['designation']."<br>";
        }
return $result;
}

 

so i changed the function to send out the array:

 

in the class

function getanimestatus(){
$query = mysql_query("SELECT designation FROM agi_status");
$result = mysql_fetch_array($query);
return $result;
}

 

where i m calling the function in the class

        $mysql = new mysql($dbhost,$dbuser,$dbpwd);
        var_dump( $mysql->getanimestatus());

 

But for the reason i dont understand i only get the 1st value of the array.

 

array(2) { [0]=> string(6) "Airing" ["designation"]=> string(6) "Airing" } 

 

Any help or tips would be deeply apreciated.

 

Full class code:

<?php
#	Classe que contem todas as operações relacionadas com a interação do site com o Servidor MySQL

class mysql{

	#	Váriaveis necessárias para a ligação á base de dados MySQL
	private $dbname			= 'phpMyAnimeList';
	private $dbhost			= '';
	private $dbuser			= '';
	private $dbpwd			= '';
	private $dblink			= '';
	private $tblink			= '';

	#	Váriaveis necessárias para as funções da classe
	private $saltkey		= '15e1065fea';
	private $safequeryvar	= '';
	private $safequeryvar2	= '';

	#	Quando objecto da class mysql é criado as variaveis $dbhost,$dbuser e $dbpwd são alimentadas pelos valores 
	#	definidos pelo utilizador no ficheiro config.php
	function __construct($host,$user,$pwd) {
		$this->dbhost = $host;
		$this->dbuser = $user;
		$this->dbpwd = $pwd;
		$this->connect();
	}

	#	Função de ligação ao servidor de MySQL e selecção da base de dados phpMyAnimeList
	function connect(){
		$this->dblink=mysql_connect($this->dbhost, $this->dbuser, $this->dbpwd);
		if( !$this->dblink ){
			die( "<b>Unable to connect to the database</b>:" . mysql_error());
			$this->close();
		}else{
			$this->tblink = mysql_select_db($this->dbname,$this->dblink);
			if( !$this->tblink ){
				die( "<b>Unable to select the database</b>:" . mysql_error());
				$this->close();
			}
		}
	}

	#	Pequena função para prevenir mysql injection
	function safequery($input){
		$safeinput = mysql_real_escape_string(stripslashes($input));
		return $safeinput;
	}

	#	Função para limpar o conteudo das variaveis caso já não sejam necessárias
	function cleanvar(){
		unset($this->safequeryvar);
		unset($this->safequeryvar2);
	}

	#	Termina a ligação ao servidor MySQL
	function close(){
		mysql_close( $this->dblink );
	}

	#	Verifica se o utilizador e password's inseridos pelo utilizador estão na base de dados e se estão correctos
	function logincheck($username,$password){
		$this->safequeryvar = $this->safequery($username);
		$this->safequeryvar2 = sha1(md5($this->safequery($password).$this->saltkey));
		$query = mysql_query("SELECT username FROM usm_user WHERE Username='$this->safequeryvar' AND Password='$this->safequeryvar2'");
		$rows = mysql_num_rows($query);
		if($rows == 1){
			$this->cleanvar();
			return $rows;
		}else{
			$this->cleanvar();
			return false;
		}
	}

	function setcookieid($idcookie,$username){
		$this->safequeryvar = $this->safequery($username);
		mysql_query("UPDATE usm_user SET Cookieid='$idcookie' WHERE Username='$this->safequeryvar'");
		$this->cleanvar();
	}

	#	Queries relacionadas com o Theme do site & user

	function setsitetheme($themeid){
		$this->safequeryvar = $this->safequery($themeid);
		mysql_query("UPDATE wsm_theme SET `Default`='0' WHERE `Default`='1'");
		mysql_query("UPDATE wsm_theme SET `Default`='1' WHERE `ThemeID`='$this->safequeryvar'");
		$this->cleanvar();
		return 0;
	}

	function setusertheme($themeid,$cookieid){
		$this->safequeryvar = $this->safequery($themeid);
		$this->safequeryvar2 = $this->safequery($cookieid);
		mysql_query("UPDATE usm_user SET `ThemeID`='$this->safequeryvar' WHERE `Cookieid`='$this->safequeryvar2'") or DIE(mysql_error());
		$this->cleanvar();
	}

	function getusertheme(){
		$query = mysql_query("SELECT wsm_theme.Designation FROM wsm_theme LEFT OUTER JOIN usm_user ON ( usm_user.ThemeID = wsm_theme.ThemeID ) WHERE usm_user.ThemeID = wsm_theme.ThemeID");
		$result = mysql_fetch_array($query);
		return $result['Designation'];
	}

	function getsitetheme(){
		$query = mysql_query("SELECT Designation FROM wsm_theme WHERE `Default` = '1'");
		$theme = mysql_fetch_array($query); 
		return $theme['Designation'];
	}

	# 	Funções para ir buscar informação de categorização e identificação dos titulos

	function getanimestatus(){
		$query = mysql_query("SELECT designation FROM agi_status");
		$result = mysql_fetch_array($query);
		return $result;
	}

	#	Funções relativas aos insert's na base de dados
	function insertanime(){

	}

	function insertfansub(){

	}

	function insertcategory(){

	}

	function showanime(){

	}

	function showfansub(){

	}

	function showcategory(){

	}
}
?>

if you're expecting several results, you need to loop through them:

 

function getanimestatus(){
        $res = array();
$query = mysql_query("SELECT designation FROM agi_status");
while($result = mysql_fetch_array($query)){
$res[] = $result['designation'];
        }
        return $res;
}

Archived

This topic is now archived and is closed to further replies.

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