Gå til innhold

unexpected T_IF, expecting [Hjelp]


Anbefalte innlegg

Har fått en error som jeg ikke får vekk :p

Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION in /home/stats/minestats.php on line 133

noen som klarer og finne feilen, og eventuelt rette den?

class minestats{
private $config;
private $mysqli;
private $query;
var $players;
var $used_lang;
var $lang;
var $langs;
var $search;
var $sort;
var $server;
var $date;
var $optable;
var $opheadfoot;

function minestats(){
	require('config.php');
	$this->config = $config;
	$this->mysqli = new mysqli($config['server'], $config['user'], $config['pass'],  $config['db']);
	$this->server = $config['servername'];
	$this->date = $config['date'];
	$this->optable = $config['optable'];
	$this->opheadfoot = $config['opheadfoot'];
	if (mysqli_connect_error()) {die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());}
	if ($_GET['lang']){
		$this->lang = parse_ini_file('lang/'.$_GET['lang'].'.ini');
		$this->used_lang = $_GET['lang'];
	}
	else{
		$this->lang = parse_ini_file('lang/'.$config['lang'].'.ini');
		$this->used_lang = $config['lang'];
	}
	if ($handle = opendir(dirname(__FILE__).'/lang')) {
		while (false !== ($file = readdir($handle))) {
			if (preg_match("/.*\.ini/", $file, $hit)) {
				$this->langs[] = preg_replace('/\.ini/', '', $hit[0]);
			}
		}
		closedir($handle);
	}
}

protected function fetch_array($iterator = 1,$index=''){
	if ($result = $this->mysqli->query($this->query)) {
		$i=0;
		while ($row = $result->fetch_assoc()) {
			switch ($iterator)
			{
				case 0:
				$res_array = $row[$index];
				break;
				case 1:
				$res_array[$row[$index]] = $row["value"];
				break;
				case 2:
				$res_array[$i] = $row[$index];
				$i++;					
				break;
				case 3:
				$res_array[$row[$index]] = array();
				break;
			}
		}
		$result->close();
		return $res_array;
	}else{
		printf("Errormessage: %s\n", $mysqli->error);
		return false;
	}	
}
protected function fetch_stats(){
	if ($result = $this->mysqli->query($this->query)) {
		$i=0;
		while ($row = $result->fetch_assoc()) {
				$this->players[$row['player']][$row['mlvl']][$row['mexp']][$row['wlvl']][$row['wexp']][$row['flvl']][$row['flvl']][$row['fexp']][$row['blvl']][$row['bexp']][$row['tlvl']][$row['texp']][$row['clvl']][$row['cexp']][$row['elvl']][$row['eexp']];
		}
		$result->close();
	}else{
		printf("Errormessage: %s\n", $mysqli->error);
		return false;
	}	
}
protected function fetch_stats_full(){
	if ($result = $this->mysqli->query($this->query)) {
		$i=0;
		while ($row = $result->fetch_assoc()) {
				$this->players[$row['player']][$row['mlvl']][$row['mexp']][$row['wlvl']][$row['wexp']][$row['flvl']][$row['flvl']][$row['fexp']][$row['blvl']][$row['bexp']][$row['tlvl']][$row['texp']][$row['clvl']][$row['cexp']][$row['elvl']][$row['eexp']];
		}
		$result->close();
	}else{
		printf("Errormessage: %s\n", $mysqli->error);
		return false;
	}	
}

function get_stats(){
	//get the stuff
	if ($_GET['search']){

		$this->search = $_GET['search'];
		$filter = "WHERE `player` LIKE '".$this->search."%' ORDER BY `player` ASC";
	} 
	else {
	} 
	$this->query = ("SELECT * FROM `".$this->config['table_stats']."` ".$filter.";");
	$this->fetch_stats();
	//
	$this->query = "SELECT `player`, `mlvl`, `mexp` FROM `".$this->config['table_stats']."` WHERE `mlvl` = 'Mining';";
	$mining = $this->fetch_array(1,'player');
	$this->query = "SELECT `player`, `wlvl`, `wexp` FROM `".$this->config['table_stats']."` WHERE `wlvl` = 'WoodCutting';";
	$woodcutting = $this->fetch_array(1,'player');
	$this->query = "SELECT `player`, `flvl`, `fexp` FROM `".$this->config['table_stats']."` WHERE `flvl` = 'Farming';";
	$farming = $this->fetch_array(1,'player');
	$this->query = "SELECT `player`, `blvl`, `bexp` FROM `".$this->config['table_stats']."` WHERE `blvl` = 'Building';";
	$Building = $this->fetch_array(1,'player');
	$this->query = "SELECT `player`, `tlvl`, `texp` FROM `".$this->config['table_stats']."` WHERE `tlvl` = 'Training';";
	$Training = $this->fetch_array(1,'player');
	$this->query = "SELECT `player`, `clvl`, `cexp` FROM `".$this->config['table_stats']."` WHERE `clvl` = 'Combatant';";
	$Combatant = $this->fetch_array(1,'player');
	$this->query = "SELECT `player`, `elvl`, `eexp` FROM `".$this->config['table_stats']."` WHERE `elvl` = 'Electrician';";
	$Electrician = $this->fetch_array(1,'player');
           }



		//put in the damage stuff seperatly
		if ($mining[$name]){$this->players[$name]['Mining'] = $mining[$name];}
		else {$this->players[$name]['Mining'] = 0;}
		if ($woodcutting[$name]){$this->players[$name]['Mining'] = $woodcutting[$name];}
		else {$this->players[$name]['woodcutting'] = 0;}
		if ($farming[$name]){$this->players[$name]['farming'] = $farming[$name];}
		else {$this->players[$name]['farming'] = 0;}
		if ($Building[$name]){$this->players[$name]['Building'] = $Building[$name];}
		else {$this->players[$name]['Building'] = 0;}
		if ($Training[$name]){$this->players[$name]['Training'] = $Training[$name];}
		else {$this->players[$name]['Training'] = 0;}
		if ($Combatant[$name]){$this->players[$name]['Combatant'] = $Combatant[$name];}
		else {$this->players[$name]['Combatant'] = 0;}
		if ($Electrician[$name]){$this->players[$name]['Electrician'] = $Electrician[$name];}
		else {$this->players[$name]['Electrician'] = 0;}



		//build sort arrays
		$Mining[] 		= $this->players[$name]['Mining'];  
           $woodcutting[] 		= $this->players[$name]['woodcutting'];
 			$farming[] 		= $this->players[$name]['farming'];
		$Building[] 		= $this->players[$name]['Building'];
		$Training[] 		= $this->players[$name]['Training'];
		$Combatant[] 		= $this->players[$name]['Combatant'];
		$Electrician[] 		= $this->players[$name]['Electrician'];


	//sort it if wanted
	if ($_GET['sort']){
	array_multisort($$_GET['sort'], SORT_DESC, $this->players);
	}				
}

 

"line 133"

if ($mining[$name]){$this->players[$name]['Mining'] = $mining[$name];}

Lenke til kommentar
Videoannonse
Annonse

Ville nok også begynt med å rydde opp i formateringen og sørget for at indentingen stemmer nedover. Da blir det også mye lettere å finne slike meh-feil.

 

Har også hatt en del tilfeller i det siste der synlig syntaks har vert 100% korrekt, men der det åpenbart ligger skjulte tegn på en eller annen måte. Utrolig frustrerende å lete etter slike feil, men igjen begynner den prosessen med å ha "perfekt" formatering av koden og helst en editor som raskt viser at paranteser etc er balansert. Derfra må man egentlig bare markere eller midlertidig fjerne linjer med kode til syntaksen blir rett og sette inn igjen kode til man finner feilen igjen.

Lenke til kommentar

er koden så galen? :) har ikke skrevet så mye php, er ca sjette gangen (:

uansett, tenkte å bare begynne fra bunnen....

----

er ikke lett og liste mysql rows :/

 

Player - mlvl - mexp - wlvl - wexp

 

i en fin lite tabel som er oversikteli :/ , hadde kanskje vært bedre og legge til sånn at du må søke etter en "player" for og så returnere mysql raden ?, skal hver fall ha "top 15" liste... får google videre :p

 

Edit//

Noen så har noen sider å anbefale? tenkte å bare leie noen til og gjøre det :)

Lenke til kommentar

Du kan selecte alt du vil ha i en eneste query, og deretter hente ut alt via en while- eller for-løkke og eventuelt mellomlagre det til arrays. På den måten blir alle $this->query og fetch_array() til kun en av hver i stedet. For å klare det må du nesten forstå prinsippet bak løkker, queries (sql-syntax), fetching og array, skriver det ikke for deg beklager.

Lenke til kommentar

Du kan selecte alt du vil ha i en eneste query, og deretter hente ut alt via en while- eller for-løkke og eventuelt mellomlagre det til arrays. På den måten blir alle $this->query og fetch_array() til kun en av hver i stedet. For å klare det må du nesten forstå prinsippet bak løkker, queries (sql-syntax), fetching og array, skriver det ikke for deg beklager.

 

noen guider og anbefale? :)

Lenke til kommentar

For helt basic er w3schools.org helt greit, men ikke ta koden som står der som en fasit da det er sikkerhetshull i eksemplene deres m.mer. For oppdaterte eksempler følg php.net. Har dessverre ingen komplette guider, da jeg lærte endel av meg selv via php.net kombinert med at jeg studerer IT.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...