Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Problem z pętlą(?)


Przejdź do rozwiązania Rozwiązane przez DawPi,

Rekomendowane odpowiedzi

Opublikowano

Problem polega na tym, że gdy chce wyświetlić wiele wyników i potem do jednego z nich przydzielić jakąś wartość ze switcha na podstawie typu z danego wyniku to we wszystkich wynikach pojawia się to samo, nawet jeśli inne mają inne wartości 'type'. Jestem prawie przekonany, że to problem pętli lub niepoprawnego zapytania.

Moduł:

$types = array();
$testuje;

$query = array('select'	=> 	'*',
				   'from'	=> 	'testDB',
				   'where'	=> 	'gID='.$member['member_id'].'',
				   'order'	=> 	'id DESC');

$this->DB->build($query);
$outer	= $this->DB->execute();

while($row = $this->DB->fetch($outer))
{
	$types[] = $row;

        switch ($types['type']) 
        {
            case 0:
                $testuje = "test1";
                break;
            case 1:
                $testuje = "test2";
                break;
            case 2:
                $testuje = "test3";
                break;
        }
}

return $this->registry->getClass('output')->getTemplate('myTemplate')->types($types, $testuje);
Szablon:

<if test="types:|:is_array($types) and count($types)">
  <foreach loop="types:$types as $type">
      {$testuje}               
  </foreach>
</if>
Opublikowano

Co zwraca $row['type']?

var_dump($row);
array(1) { ["type"]=> string(1) "0" }

 

Spróbuj tak:

$types[] = $row;
        switch ($types['type'])
Na:

        switch ($row['type'])
Bez zmian, to jedno i to samo.
  • Manager
Opublikowano

Ok, to może takie proste pytanie - masz zdefiniowane zmienne w szablonie? Nie mówię o zawartości, ale o tej podstawie - zmiennych.

 

 

 

Pomijam, że ten cały kod jest bez sensu. Pętla w szablonie z jedną zmienną. Pętla w kodzie która przypisuje wartość do jednej zmiennej.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Ok, to może takie proste pytanie - masz zdefiniowane zmienne w szablonie? Nie mówię o zawartości, ale o tej podstawie - zmiennych.

Oczywiście.  -_- 

 

Pomijam, że ten cały kod jest bez sensu. Pętla w szablonie z jedną zmienną. Pętla w kodzie która przypisuje wartość do jednej zmiennej.

Nie musi mieć sensu, wystarczy, że będzie działać.

  • Manager
  • Rozwiązanie
Opublikowano

Jest to wybitnie bez sensu, bo skoro napisałeś coś takiego:

Problem polega na tym, że gdy chce wyświetlić wiele wyników i potem do jednego z nich przydzielić jakąś wartość ze switcha na podstawie typu z danego wyniku to we wszystkich wynikach pojawia się to samo, nawet jeśli inne mają inne wartości 'type'. Jestem prawie przekonany, że to problem pętli lub niepoprawnego zapytania.

A kod jak mówiłem tego nie pokazuje.

 

Zrób tak, że zmienną "$testuje" zmień na $row['testuje'] = 'wartosc';

Oczywiście dodajesz to przed:

$types[] = $row;

Także reasumując - kod jest 'prawidłowy'. Jego składnia niestety nie oddaje tego, co chcesz osiągnąć.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Zrób tak, że zmienną "$testuje" zmień na $row['testuje'] = 'wartosc';

To mi pomogło, problem rozwiązany.
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.