Gå til innhold

[løst]Hvordan ikke legge inn både index og navn på rad i array?


Anbefalte innlegg

Har laget denne koden for og hente ut brukerdata om den enkelte brukeren:

class BrukerData extends Bruker {

protected static $instance = NULL;
protected $BrukerId;
protected $BrukerData = array();

public function __construct($id) {
	$this->BrukerId = $id;
	$this->SettBrukerData();
}

private function SettBrukerData() {
	if(self::$instance === NULL) {
		$sql = Database::prepare('SELECT * FROM brukere WHERE id = ? LIMIT 1');
		$sql->execute(array($this->BrukerId));
		if(Database::Rows() < 1) {
			return parent::loggut();
		}
		else {
			foreach($sql as $row) {
				#var_dump($row);
				array_push($this->BrukerData, $row);
			}
		}
	}
	self::$instance = 1;
}

public function HentData($var) {
	return $this->BrukerData[0][$var];
}

}

 

Og problemet er, at både en index og navnet på raden blir lagt i arrayen med samme value. Blir på en måte dobbelt opp.

Slik ser det ut:

array(134) {

["id"]=> string(1) "1"

[0]=> string(1) "1"

["nick"]=> string(5) "admin"

[1]=> string(5) "admin"

 

... også videre nedover

 

Hvordan kan jeg få til slik at kun raden i databasen blir en del av arrayen?

 

 

Løste det :D

foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $row) {

Endret av Thomas.
Lenke til kommentar
Videoannonse
Annonse

Hvis du vil sette det som default fetch mode kan du bruke:

 

$pdoobject->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

 

Lagt til :)

 

Bare lurer på noe annet angående OOP.

Public, private, protected også videre.. Hva er egentlig poenget med de? For å ikke la andre objekter komme til i den og den klassen/metoden? Men når du først programmerer, programmerer du vel riktig, fungerende og slik at det skal være :ermm: Du har for eksempel private __clone() {} for å hindre kloning av objekt i scriptet ditt.

Så er det noen måte klienten kan lage innvirknig i scriptene dine? Eller er disse access-metodene kun for scriptet og ting kan ikke påvirkes utenifra?

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...