fetchPairs() – vložení více hodnot

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

ahoj

potřaboval bych při vkládání pole do RadioListu docílit následujícího

<?php
->fetchPairs("id", "sloupec1 sloupec2");
?>

Děkuji za radu

JHadamcik
Člen | 47
+
0
-

Čili value má být ‚sloupec1 sloupec2‘?

Pokud to nejde takto, což bych se divil, tak to nejde přes fetchPairs();

Vytáhl bych si to bez jakéhokoliv fetche a pak to projel foreachem:

function wierdFetch($rows) {
	$result = array();
	foreach($rows as $row) {
		$result[$row->id] = $row->sloupec1 . ' ' . $row->sloupec2;
	}

	return $result;
}
batko
Člen | 219
+
0
-

ok, děkuji za radu, to bude fungovat :-) jen jsem myslel zda nebude nějaké elegantnější řešení.

Díky

JHadamcik
Člen | 47
+
0
-

batko napsal(a):

ok, děkuji za radu, to bude fungovat :-) jen jsem myslel zda nebude nějaké elegantnější řešení.

Díky

Bylo mi jasné, že hledáš elegantnější, ale bohužel si myslím, že lepší nebude. Ono fetchPairs bude dělat IMHO to stejné.

vitush93
Člen | 33
+
0
-

JHadamcik napsal(a):

Čili value má být ‚sloupec1 sloupec2‘?

Pokud to nejde takto, což bych se divil, tak to nejde přes fetchPairs();

Vytáhl bych si to bez jakéhokoliv fetche a pak to projel foreachem:

function wierdFetch($rows) {
	$result = array();
	foreach($rows as $row) {
		$result[$row->id] = $row->sloupec1 . ' ' . $row->sloupec2;
	}

	return $result;
}

neslo by pouzit CONCAT spolu „AS <sloupec>“ a pak u fetchPairs() se odkazovat prave na <sloupec>?

JHadamcik
Člen | 47
+
0
-

vitush93 napsal(a):

JHadamcik napsal(a):

Čili value má být ‚sloupec1 sloupec2‘?

Pokud to nejde takto, což bych se divil, tak to nejde přes fetchPairs();

Vytáhl bych si to bez jakéhokoliv fetche a pak to projel foreachem:

function wierdFetch($rows) {
	$result = array();
	foreach($rows as $row) {
		$result[$row->id] = $row->sloupec1 . ' ' . $row->sloupec2;
	}

	return $result;
}

neslo by pouzit CONCAT spolu „AS <sloupec>“ a pak u fetchPairs() se odkazovat prave na <sloupec>?

Zní to rozumně a pravděpodobně. Chtělo by to zkusit.

batko
Člen | 219
+
0
-

JHadamcik napsal(a):

Čili value má být ‚sloupec1 sloupec2‘?

Pokud to nejde takto, což bych se divil, tak to nejde přes fetchPairs();

Vytáhl bych si to bez jakéhokoliv fetche a pak to projel foreachem:

function wierdFetch($rows) {
	$result = array();
	foreach($rows as $row) {
		$result[$row->id] = $row->sloupec1 . ' ' . $row->sloupec2;
	}

	return $result;
}

tohle šplape jako hodinky :-) to s tím AS bohužel nevím jak na to…

JHadamcik
Člen | 47
+
0
-

batko napsal(a):

JHadamcik napsal(a):

Čili value má být ‚sloupec1 sloupec2‘?

Pokud to nejde takto, což bych se divil, tak to nejde přes fetchPairs();

Vytáhl bych si to bez jakéhokoliv fetche a pak to projel foreachem:

function wierdFetch($rows) {
	$result = array();
	foreach($rows as $row) {
		$result[$row->id] = $row->sloupec1 . ' ' . $row->sloupec2;
	}

	return $result;
}

tohle šplape jako hodinky :-) to s tím AS bohužel nevím jak na to…

$this->...->select('id, CONCAT(sloupec1, " ", sloupec2) AS "value"')....->fetchPairs('id', 'value');

Testni to

Editoval JHadamcik (15. 7. 2013 20:38)

2k
Člen | 15
+
0
-

Pokud používáš database, tak něco jako:

...->select('id, CONCAT(sloupec1,' ',sloupec2) AS sloupec')->...->fetchPairs('id', 'sloupec')

Pomalejš…

Editoval 2k (15. 7. 2013 20:41)

JHadamcik
Člen | 47
+
+1
-

2k napsal(a):

Pokud používáš database, tak něco jako:

...->select('id, CONCAT(sloupec1,' ',sloupec2) AS sloupec')->...->fetchPairs('id', 'sloupec')

Pomalejš…

Ty ' v CONCAT by se escapovaly

batko
Člen | 219
+
0
-

->select(‚id, CONCAT(city,zip) AS sloupec‘)->fetchPairs(‚id‘, ‚sloupec‘);

tohle funguje, ale výsledek sloupec je jeden string slepený k sobě

zkoušel jsem hory doly a nejde mi to oddělit

JHadamcik
Člen | 47
+
0
-

batko napsal(a):

->select(‚id, CONCAT(city,zip) AS sloupec‘)->fetchPairs(‚id‘, ‚sloupec‘);

tohle funguje, ale výsledek sloupec je jeden string slepený k sobě

zkoušel jsem hory doly a nejde mi to oddělit

ČTI POŘÁDNĚ!!!

Psali jsme CONCAT(sloupec1, " ", sloupec2)

CONCAT funguje tak, že jednotlivé parametry k sobě spojuje. Tu mezeru musíš dát jako parametr. Proto je na druhém místě „ “.

batko
Člen | 219
+
0
-

omlouvám se :-)

funguje to jak má, máte všichni moje díky.

Děkuji