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(){

	}
}
?>

Link to comment
Share on other sites

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

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.