substr() expects parameter 1 to be string, object given

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kasparek
Člen | 43
+
0
-

Ahoj,
když si vybírám poslední záznam z db a ten bych chtěl předhodit funkci substr(), tak mi to vyhodí chybu substr() expects parameter 1 to be string, object given o co jde? Je dotaz ve špatném tvaru?

kód :

$result = $this->database->table('messages')->select('number')->order('number DESC')->limit(1);
		$year = substr($result,3,4);
		if($year != date('Y')) {
		$count = 0;
		} else {
		$count = substr($number,7,4);
		}
		$this->number = 'UPZ'.date('Y').printf("%04s",((int)$count)+1);

díky za rady

David Matějka
Moderator | 6445
+
0
-

v $result je objekt Selection, zavolej ->fetch(), coz ti vrati konkretni radek a ->number, coz ti vrati tu hodnotu
takze

$year = substr($result->fetch()->number, 3, 4);
kasparek
Člen | 43
+
0
-

matej21 napsal(a):

v $result je objekt Selection, zavolej ->fetch(), coz ti vrati konkretni radek a ->number, coz ti vrati tu hodnotu
takze

$year = substr($result->fetch()->number, 3, 4);

jj to už mi vrátí požadovanou hodnotu $year ale teď mi to píše Trying to get property of non-object u $count, když použiju to samý $count = substr($result->fetch()->number,7,4);

Editoval kasparek (31. 5. 2014 0:54)

David Matějka
Moderator | 6445
+
0
-

snazi se to ziskat z resultu dalsi vysledek, ktery tam jiz neni. takze si ten row z fetch, pripadne rovnou ten number, uloz do promenny

kasparek
Člen | 43
+
0
-

matej21 napsal(a):

snazi se to ziskat z resultu dalsi vysledek, ktery tam jiz neni. takze si ten row z fetch, pripadne rovnou ten number, uloz do promenny

jop už mi to funguje :) do proměný jsem si to dal protože jsem si pak říkal že je to asi i lepší a hlavně kratší zápis, jenže mi to pak vyhazovalo nějakou chybu s odesíláním hlavičky a pak jsem si všimnul, že používám $this->number = 'UPZ'.date('Y').printf("%04s",((int)$count)+1); a měl jsem použít $this->number = 'UPZ'.date('Y').sprintf("%04s",((int)$count)+1);

ale moc díky za rady ;)

Editoval kasparek (31. 5. 2014 1:36)