Nette\Database – chybný výsledek dotazu

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

Zdravím,

mám tabulky „player“ a „match“, vazba M:N a jsou spojeny tabulkou player_match, která kromě player_id a match_id obsahuje také sloupec „number“. Potřebuju získat všechny čísla z daného zápasu, proto jsem napsal jednoduchý dotaz:

<?php
$pms = $this->model->getPlayersMatches()->where('match_id', $matchId);

$numbers = array();
	foreach ($pms as $pm) {
	    $numbers[] = $pm->number;
	}
?>

Dotaz by měl vrátit 11 řádků, ale vrací jen 1. Nemůžu přijít na to, kde je chyba.

zoool
Člen | 89
+
0
-

A když dumpneš $numbers tak ti to vykreslí jen jedno číslo v poli???

ViPEr*CZ*
Člen | 814
+
0
-

Foreach projde pole jen jednou?
Není škoda si vytvářet extra nové pole? Nejde rovnou použít to pole z dotazu na DB?

potty
Člen | 13
+
0
-

zoool napsal(a):

A když dumpneš $numbers tak ti to vykreslí jen jedno číslo v poli???

Přesně tak.

Ten dotaz právě vracel jen 1 řádek, místo 11.

Už jsem byl z toho zoufalý, tak jsem použil vlastní dotaz a funguje to jak má.

<?php
$db->query('SELECT number FROM player_match WHERE match_id = ?', $matchId);
?>

Editoval potty (4. 3. 2012 18:22)