Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] Problem z przydzieleniem do zmiennej wyniki zapytania
Forum PHP.pl > Forum > Przedszkole
Avatarus
Witam
Potrzebuje przydzielić do zmiennej wynik zapytania SQL

robię to tak:
  1. <?php
  2. $wynik=$db->query('select t.product_name from prod_translations t,products p where p.product_id=pid and p.producer_id='.$product->producer_id.'');
  3.                $inne=$wynik->fetch();
  4.                
  5.                $smarty->assign('inne',$inne);
  6. ?>


a chce to wyświetlić tym:

  1. <?php
  2. {foreach from=$inne item=nazwa key=k}
  3.                                                        
  4.                                                            
  5.                                                            Nazwa:    {$nazwa} <br>
  6.                                                            
  7.                                                                
  8.                                            {/foreach}
  9. ?>


z testów wynika że zmienna jest źle przypisywania, tak jkby zmienna inna w pliku .tpl miała tylko 1 wiersz tego zapytania.

Nie lubię i nie znam się na smarty, ktoś zna rozwiązanie?

Pozdrawiam
nospor
zanim dojdziesz do smarty, to moze sprawdź najpierw w php, ile ty masz wynikow....
  1. <?php
  2. $inne=$wynik->fetch();
  3. print_r($inne);
  4. ?>
Avatarus
no i jest jedno pole, co jest niemożliwe, bo jak sprawdzam to zapytanie w phpmyadmin to wypluwa 8 wyników (co jest poprawnym rezultatem).
Jak więc przypisać ten wynik żeby zmienna $inne miała całą tablice wyników z SQL?
phpion
Użyj pętli, np. while. Przykład masz tutaj:
http://pl2.php.net/manual/pl/function.mysql-fetch-assoc.php
Zrób analogicznie na Twojego przypadku.
Avatarus
no tak ale to by wymagało stworzenia na nowo warstwy do połączenia z bazą itp...wole już korzystać z tego co jest.
Nie ma innej meody na załadowanie tablicy do zmiennej?
nospor
przeciez phpion nie powiedzial ze masz zrobic tak jak w manualu, ale analogicznie. Jak nie wiesz co znaczy to slowko to poszukaj na wiki.
Analogicznie w tym przypadku to jest uzycie petli while tak jak to pokazano na przykladzie w manualu. Ale o tym phpion tez juz wspomnial w swoim poscie
Avatarus
wiem mój błąd, źle zrozumiałem jego słowa.
P.S nie tak ostro tongue.gif
nospor
Cytat
P.S nie tak ostro

No to podsumiujmy fakty:
1) Napisales kod smarty, ktory zwracal ci jeden rekord. Oczywiscie od razu z pretensją do smarty. Ale zeby sprawdzic czy wogole masz cos wiecej, zanim jeszcze przypiszesz do smarty, to nie raczyles wpasc na tak oczywistą rzecz

2) Jak juz po delikatnej sugesti sprawdziles, ze dostajesz tylko jeden rekord, to lecisz z tekstem
Cytat
no i jest jedno pole, co jest niemożliwe

Nawet nie raczyles sprawdzic, co robi twoja funkcja, ktorej uzywasz. jakbys sprawdzil, to bys wiedzial ze zwraca tylko jeden rekord i nie pisal takich glupot.

3) slowko analogicznie.

Uwierz na słowo, naprawdę bylem nad wyraz mily winksmiley.jpg

edit down:
no coz, mam inne zdanie na ten temat, ale faktycznie nie robmy tu offtopa. moj poprzedni post byl jedynie wynikem dziwnego tekstu:
Cytat
P.S nie tak ostro
podczas gdy nic ostrego nie padlo w tym temacie
sprawy z bliskimi nawet nie bede komentowal...
Avatarus
Drogi panie nospor
nie każdy jak ty jest aż tak inteligenty, ja widać jestem za tobą daleko w tyle, a może po prostu dzisiejszych 12h w pracy mój mózg był na tyle zmęczony że nie zauważył od razu problemu.
Nie mam pretensji do smarty, byłem zdziwiony że nie działa, ale widać mój błąd przeoczyłem oczywistą sprawę.
Panie moderatorze traktujmy innych z szacunkiem, każdy ma lepszy i gorszy dzień, czasem człowiek jest zmęczony i potrzebuje trochę czasu żeby "zaskoczyć".

Jeśli to było miłe to współczuje pana bliskim.

P.S wiem że zrobił się offtop, ale trochę mnie zdziwiło pana zachowanie.

Życzę miłej nocy,
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.