Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty] - problem z petla
Forum PHP.pl > Forum > PHP
itsme
witam szanowne grono :-)

Z bazy danych wyciagam dane w sposob nastepujacy
[php:1:dd09c45e64]<?php
$dane=telekomunikacja::wykaz_telokom($klient->id);
$ko = mysql_fetch_array($dane);
?>[/php:1:dd09c45e64]
dane z phpmyadmin po wklejeniu zapytania wygladaja nastepujaco
Cytat
wartosc  nazwa   - nazway kolumn
346-555-555 domowy  
346-52-16 centrala  
11 centrala  
czyli 3 rekordy. Wysylam to do smarty.
[php:1:dd09c45e64]<?php
$smarty->assign (ko,$ko);
$smarty->display( 'wykaz-telefonow.tpl' );
?>[/php:1:dd09c45e64]
plik wykaz-telefonow.tpl wyglada nastepujaco
Kod
<tr>

  <td><CENTER>Typ</CENTER></td>

  <td><CENTER>Wartosc</CENTER></B></TD>

  <td><CENTER>domyslny</CENTER></TD>

</tr>

  {foreach name=outer item=contact from=$ko}

<tr>

  <td align=right>{$ko.nazwa}&nbsp;&nbsp;&nbsp;</td>

  <td align=left>&nbsp;&nbsp;<B>{$ko.wartosc}</B></TD>

  <td><CENTER><input name="domyslny" type="radio" value={$ko.id}></CENTER></TD>

</tr>

{/foreach}

</table>

zas wynik dzialania tego to (KOD):
Kod
<tr>

  <td><CENTER>Typ</CENTER></td>

  <td><CENTER>Wartosc</CENTER></B></TD>

  <TD><CENTER>domyslny</CENTER></TD>

</tr>

<tr>

  <td align=right>domowy&nbsp;&nbsp;&nbsp;</td>

  <td align=left>&nbsp;&nbsp;<B>346-555-555</B></TD>

  <td><CENTER><input name="domyslny" type="radio" value=></CENTER></TD>

</tr>

<tr>

  <td align=right>domowy&nbsp;&nbsp;&nbsp;</td>

  <td align=left>&nbsp;&nbsp;<B>346-555-555</B></TD>

  <td><CENTER><input name="domyslny" type="radio" value=></CENTER></TD>

</tr>

<tr>

  <td align=right>domowy&nbsp;&nbsp;&nbsp;</td>

  <td align=left>&nbsp;&nbsp;<B>346-555-555</B></TD>

  <td><CENTER><input name="domyslny" type="radio" value=></CENTER></TD>

</tr>

<tr>

  <td align=right>domowy&nbsp;&nbsp;&nbsp;</td>

  <td align=left>&nbsp;&nbsp;<B>346-555-555</B></TD>

  <td><CENTER><input name="domyslny" type="radio" value=></CENTER></TD>

</tr>

</table>

wyglad
Kod
Typ          Wartosc      domyslny

domowy      346-555-555  

domowy      346-555-555  

domowy      346-555-555  

domowy      346-555-555  

czyli 4 rekordy gdzie wszystkie sa takie same i doszedlem ze wszystkie sa pierwszym rekordem z zapytania. Nie wiem jak na poziomie smarty przeskakiwac o jeden i dlaczego sa 4 a nie 3 rekordy ?
scanner
Czy mi się zdaje, czy [manual:0211c1975d]mysql_fetch_array()[/manual:0211c1975d] zwraca pojedynczy wiersz wyniku, a nie całą tabelkę?
[Regis]
Cytat
Czy mi się zdaje, czy [manual:1c809e0f8f]mysql_fetch_array()[/manual:1c809e0f8f] zwraca pojedynczy wiersz wyniku, a nie całą tabelkę?


Jak sie go wpakuje w while-a na przyklad, to bedzie zwracal kolejne wiersze az do konca. Sam z siebie zwraca tylko jeden smile.gif Ale ja sie na Smarty nie znam smile.gif
itsme
ja juz jestem gl000pi ... przeskoczylem na obiekty zapomnialem o tablicach ... ide przewietrzyc umysl ...
jezeli ktos jeszcze widzi jakies bledy prosze o info

pozdrawiam
scanner
Cytat
"]Jak sie go wpakuje w while-a na przyklad
Ale itsme nie dał while... smile.gif
Cytat
ja juz jestem gl000pi ...
Zapamiętamy smile.gif
itsme
ale zgodnie z dokumentacja smarty przetlumaczona przez rzseattle w takiej petli winno mi przeskakiwac i jeden .... sam nie wiem
=================
przewietrzylem sie i zrobilem print_r($ko) oto wynik
Kod
Array ( [0] => 346-555-555 [wartosc] => 346-555-555 [1] => domowy [nazwa] => domowy )
zas zapytanie z ktore mam tablice $ko wstawione bezposrednio do mySQL-a zwraca wartosc
Kod
346-555-555 domowy

11 centrala

346-52-16 centrala
rzseattle
dokladnie -. ja przez smartego wogole zaprzestalem pracy na bezposrednich wynikach zapytania i napisalem sobie cala klase krora przetwarza wyniki oto z jedna z funkcji/: [php:1:09e81dbfcb]<?php
function to_array ( $query ) {
$r = $this->query_( $query );
while( $line = mysql_fetch_assoc( $r ) ) {
$data[]=$line;
}
$wynik=$data;
return $wynik;
}
?>[/php:1:09e81dbfcb]
i zycie stalo sie o wiele prostrze potem bez problemu mozna sie odwolywac do kazdego wiersza co jest bardzo ale to bardzo wygodne
itsme
i wlasnie tego mi brakowalo :-)

dziala
GeoS
Ze Smarty nie korzystam i mam nadzieje, ze nie bede musial (moze niesluszna i zbyt pochopna, ale nie o tym ten post).

Blad wedlug mnie jest juz w 2 linii kodu:
[php:1:17494217d0]<?php
$dane=telekomunikacja::wykaz_telokom($klient->id);
$ko = mysql_fetch_array($dane);
?>[/php:1:17494217d0]

Jak wykazal moj test, w twoim przypadku powininen on miec odrobine inna postac:
[php:1:17494217d0]<?php
$dane=telekomunikacja::wykaz_telokom($klient->id);

while($data = mysql_fetch_array($dane))
$ko[] = $data;
?>[/php:1:17494217d0]

Oczywiscie podkreslam, ze moge sie mylic.
DeyV
Cytat
dokladnie -. ja przez smartego wogole zaprzestalem pracy na bezposrednich wynikach zapytania i napisalem sobie cala klase...
A czy nie czasem do tego przydaje się ADoDB??
rzseattle
Cytat
Cytat
dokladnie -. ja przez smartego wogole zaprzestalem pracy na bezposrednich wynikach zapytania i napisalem sobie cala klase...
A czy nie czasem do tego przydaje się ADoDB??


szczeze mowiac poprostu jeszcze nie chcialo mi sie za to wziasc, pozatym wykozystuje swoj bo dla mnie jest najbardziej optymalny i nie potrzebuje czegos wiecej,, hmm kiedys programowanie w php to bylo echo + mysql_query, a teraz SMARTY + ADoDB - zauwazam ze maual z php juz nie wystarcza i na moim twardzielu zaczyna mnozyc sie od roznych dokumentacji - ciekawe kiedy braknie miiejsca na moich 40 gigach laugh.gif laugh.gif laugh.gif
a tak na serio to DeyV masz racjie predzej czy pozniej i tak bede musial sie za to wziasc
ps wlasnie wrocilem z przystanku Woodstock i jestem caly pocharatany wiec pewnie nie dzisiaj laugh.gif laugh.gif laugh.gif
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.