Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Smarty]Segregowanie danych w wyświetlanej tabeli
kasior
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Witam. Mam problem (no inaczej bym nie pisał nie biggrin.gif )
Moze na początek kawałek kodu:

Kod
$sql = 'CALL replacement ('.$changeweek.')';
$stmt = $hDB->prepare($sql);
             $stmt->execute();
            $num = $stmt->rowCount();
            
            $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
            for ($i=0;$i<$num;$i++){
                $resultw = $stmt->fetch();
                $wr[] = $resultw;
            }
$smarty->assign('wr',$wr);


Mam z tego tablicę:


direction | driver | truck | client
-------------------------------------------------------------
IN | kowalski | CBA 2659 | klient
--------------------------------------------------------------
OUT | nowak | CBA 2659 | klient
-------------------------------------------------------------

Jak to wyrzucic na stronę w Smarty w formie tabelki :


OUT | truck | IN | client
------------------------------------------------
nowak | CBA 2659 | kowalski | klient
-------------------------------------------------

Poprosze o pomoc.

Nikt nie pomoże?

Ten post edytował kasior 1.04.2014, 12:05:36
Powód edycji: [nospor]:


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 32)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nie robiłbym tego w Smarty, najlepiej zapytaniem SQL, ale rozumiem, że nie możesz.
Pozostaje PHP.

  1. for ($i=0;$i<$num;$i++){
  2. $resultw = $stmt->fetch();
  3. if($resultw['direction']=='IN')
  4. $wr[$resultw['client']][$resultw['truck']]['in']=$resultw['driver'];
  5. elseif($row['direction']=='OUT')
  6. $wr[$resultw['client']][$resultw['truck']]['out']=$resultw['driver'];
  7. }

Puść to później w Smarty, w dwóch pętlach {foreach} z atrybutem key.
W pierwszej w atrybucie key będziesz mieć klienta, w drugiej, w atrybucie key będzie truck.
Value drugiej pętli, to tablica z dwiema zmiennymi: in oraz out.


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #3





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Fajnie opisałeś, ale jednak nie rozumiem tego sad.gif Nigdy nie używałem pętli {foreach} , przeważnie używam {section}


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. OUT,truck,IN,client
  2. {foreach from=$wyniki key=client item=tmp}
  3. {foreach from=$tmp key=truck item=drivers}
  4. {$drivers.out},{$truck},{$drivers.in},{$client}
  5. {/foreach}
  6. {/foreach}


I jeszcze możesz uprościć wcześniejszą pętlę w PHP:
  1. for ($i=0;$i<$num;$i++){
  2. $resultw = $stmt->fetch();
  3. $wr[$resultw['client']][$resultw['truck']][strtolower($resultw['direction'])]=$resultw['driver'];
  4.  
  5. }


Ten post edytował trueblue 1.04.2014, 17:37:52


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #5





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No chciałbym kliknąc pomógł ale jeszcze nie mogę. To coś nie działa. Dostaje w wyniku kupę danych zupełnie niepotrzebnych w tym nazwy pól bazy.

  1. OUT,truck,IN,client
  2.  
  3. O,direction,O,0
  4. 5,graph_id,5,0
  5. 1,driver,1,0
  6. 1,week,1,0
  7. o,status,o,0
  8. b,color,b,0
  9. ,note,,0
  10. W,truck,W,0
  11. ,infoequipment,,0
  12. ,infoservice,,0
  13. v,client,v,0
  14. ,coach,,0
  15. 1,driver_id,1,0
  16. G,name,G,0
  17. D,last_name,D,0
  18. ,last_name2,,0
  19. 1,active,1,0
  20. ,phone,,0
  21. ,phone2,,0
  22. 1,adr,1,0
  23. 6,system,6,0
  24. 2,adddate,2,0
  25. ,lang,,0
  26. ,type,,0
  27. R,country,R,0
  28. w,weeks,w,0


itd...

jeszcze raz cały mój kod:


  1. $sql = 'CALL replacement ('.$changeweek.')';
  2. $stmt = $hDB->prepare($sql);
  3. $stmt->execute();
  4. $num = $stmt->rowCount();
  5.  
  6. $resultw = $stmt->setFetchMode(PDO::FETCH_ASSOC);
  7. for ($i=0;$i<$num;$i++){
  8. $resultw = $stmt->fetch();
  9. $wr[] = $resultw;
  10. }
  11.  
  12. for ($i=0;$i<$num;$i++){
  13. $resultw = $stmt->fetch();
  14. if($resultw['direction']=='IN')
  15. $wr[$resultw['client']][$resultw['truck']]['in']=$resultw['driver'];
  16. elseif($row['direction']=='OUT')
  17. $wr[$resultw['client']][$resultw['truck']]['out']=$resultw['driver'];
  18. }
  19.  
  20. $smarty->assign('wr',$wr);



  1. OUT,truck,IN,client<br /><br />
  2. {foreach from=$wr key=client item=tmp}
  3. {foreach from=$tmp key=truck item=drivers}
  4. {$drivers.out},{$truck},{$drivers.in},{$client}<br />
  5. {/foreach}
  6. {/foreach}





EDIT >> ok. dureń ze mnie. zostawiłem poprzednią pętlę smile.gif

Ten post edytował kasior 1.04.2014, 17:56:11


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


To jest ok, czy nie?
Jeśli nie to pokaż jeden wiersz: print_r($resultw); (wydrukuj w tej pętli PHP).


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #7





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Nie do końca jest ok. Zobacz kawałek wyniku:

  1. Rzeźnik -- EKU 8EV1 -- |
  2. Kalandyk -- CNA 66VC -- |
  3. Bzdyra -- CNA 2M80 -- |
  4. Krawczyk -- CB 9964V -- |
  5. Jasiński -- CB 8362W -- |
  6. Ene -- CB 8361W -- |
  7. -- EKU 8EV1 -- Korbal |


patrz na rejestrację EKU 8EV1 - to się nie składa. (out) jest w pierwszym rzędzie a gdzieś dalej (in). Nie wchodza obok siebie
Specjalnie dodałem kreski,zeby oddzielić i podkreślić wiersze

Ten post edytował kasior 1.04.2014, 18:06:32


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nie ma to znaczenia.
A gdzie jest Direction (IN, OUT)?
Pokaż ten sam kawałek drukują w pętli PHP: print_r($resultw);

P.S. Uprość pętlę w PHP - jest w moim poście z przykładem pętli w Smarty.


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #9





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. Array ( [direction] => IN [0] => IN [graph_id] => 5496 [1] => 5496 [driver] => 138 [2] => 138 [week] => 15 [3] => 15 [status] => on truck [4] => on truck [color]
  2. => b3b3b3 [5] => b3b3b3 [note] => [6] => [truck] => [7] => [infoequipment] => [8] => [infoservice] => [9] => [client] => [10] => [coach] => [11] => [driver_id] =>
  3. 138 [12] => 138 [name] => Ioan [13] => Ioan [last_name] => Sandulea [14] => Sandulea [last_name2] => [15] => [active] => 1 [16] => 1 [phone] => [17] => [phone2]
  4. => [18] => [adr] => 1 [19] => 1 [system] => 6-2 [20] => 6-2 [adddate] => 2014-03-28 15:03:41 [21] => 2014-03-28 15:03:41 [lang] => [22] => [type] => CC [23] =>
  5. CC [country] => Romania [24] => Romania [weeks] => w1:w2:w3:w4:w5:w6:w7:w8:w9:w10:w11:w12:w13:w14:w15:w16:w17:w18:w19:w20:w21:w22:w23:w24:w25:w26:w27:w28:w29:w30:w31:w32:w33:w34:w35:w36:w37:w38:
  6. w39:w40:w41:w42:w43:w44:w45:w46:w47:w48:w49:w50:w51:w52 [25] => w1:w2:w3:w4:w5:w6:w7:w8:w9:w10:w11:w12:w13:w14:w15:w16:w17:w18:w19:w20:w21:w22:w23:w24:w25:w26:w27:w28:w29:w30:w31:w32:w33:w34:w35:w36:w37:w38:
  7. w39:w40:w41:w42:w43:w44:w45:w46:w47:w48:w49:w50:w51:w52 [groups] => 2 [26] => 2 )


Pętlę oczywiście uprościłem, na tamtej tylko jeden rekord wyświetlało

Ten post edytował kasior 1.04.2014, 18:17:31


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Ok, dzięki.
A jaki jest klient dla tych dwóch rekordów, które podałeś wcześniej (rejestracja EKU 8EV1).


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #11





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No akurat nie ma. Może to ma jakis związek,ze nie ma wszystkich danych jeszcze? Myślałem,ze jak ich nie będzie to beda puste pola.
Spróbuje to odpalić z tygodniem w którym są wszystkie dane


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #12





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Akurat tu tak nie będzie, ale może to rozwiązanie Cię zadowoli:

  1. for ($i=0;$i<$num;$i++){
  2. $resultw = $stmt->fetch();
  3. $wr[empty($resultw['client'])?("brak-".$i):$resultw['client']][$resultw['truck']][strtolower($resultw['direction'])]=$resultw['driver'];
  4.  
  5. }


Ten post edytował trueblue 1.04.2014, 18:24:53


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #13





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


To dalej nie składa wierszy do kupy


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #14





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Sprawdź czy obydwie rejestracje EKU, nie mają czasem spacji przed lub po.


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #15





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Nie maja. Zresztą to jedno i to samo pobierane z bazy i wrzucane w odpowiednie pola.

Moze zobrazuje sytuację to będzie lepiej.
mam ładna tabelke z kierowcami , trzymajmy sie nazwy - OUT



Nastepna tabelka przedstawia IN



Tabelka którą teraz chcę uzyskać wyglądałaby tak biorąc pod uwage,ze nie zawsze są wszystkie dane (np wchodzi dwóch na jednego trucka bo jeden się uczy) lub nie ma klienta lub nie ma wchodzącego np.



Jest to po prostu takie zestawienie wszystkiego

Ten post edytował kasior 1.04.2014, 18:44:54


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #16





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W jednym się myliłem, rekordy bez klientów nie będą się wzajemnie nadpisywać w docelowej tabeli. Można więc wrócić do poprzedniego rozwiązania.
Z tego co pokazujesz trudno wywnioskować czy są tam spacje czy nie, bo być może program generujący te widoki je usuwa.

Ja przetestowałem na tabeli z danymi w PHP, działa bez problemu, może brakować klienta, jak i IN lub OUT:

  1. $arr[]=array('direction'=>'IN','driver'=>'kowalski','truck'=>'EKU 8EV1','client'=>'klient');
  2. $arr[]=array('direction'=>'OUT','driver'=>'nowak','truck'=>'EKU 8EV1','client'=>'klient');
  3. $arr[]=array('direction'=>'OUT','driver'=>'nowak2','truck'=>'AAA 2659','client'=>null);
  4. $arr[]=array('direction'=>'IN','driver'=>'kowalski2','truck'=>'AAA 2659','client'=>null);
  5. $arr[]=array('direction'=>'OUT','driver'=>'nowak3','truck'=>'BBB 2659','client'=>null);
  6. $arr[]=array('direction'=>'IN','driver'=>'kowalski3','truck'=>'BBB 2659','client'=>null);
  7. $arr[]=array('direction'=>'OUT','driver'=>'nowak3','truck'=>'CCC 2659','client'=>'marian');
  8.  
  9.  
  10. $wynik=array();
  11. foreach($arr as $row){
  12. $wynik[$row['client']][$row['truck']][strtolower($row['direction'])]=$row['driver'];
  13. }
  14. $smarty->assign('wynik',$wynik);
  15. $smarty->display('test.tpl');


To co generuje test.pl:

OUT,truck,IN,client
nowak,EKU 8EV1,kowalski,klient
nowak2,AAA 2659,kowalski2,
nowak3,BBB 2659,kowalski3,
nowak3,CCC 2659,,marian

Możesz jeszcze spróbować tak:
  1. $wynik[trim($row['client'])][trim($row['truck'])][strtolower($row['direction'])]=$row['driver'];



--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #17





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


ok. czyli co zostawiam z tamtego kodu?? bo już się zakręciłem. począwszy od zapytania sql


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #18





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


  1. for ($i=0;$i<$num;$i++){
  2. $resultw = $stmt->fetch();
  3. $wr[trim($resultw['client'])][trim($resultw['truck'])][strtolower($resultw['direction'])]=$resultw['driver'];
  4.  
  5. }


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #19





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


a w smarty nic już nie przerabiałeś? bo ja ciągle mam bajzel. jeszcze raz cały kod mój.:

  1. $sql = 'CALL replacement ('.$changeweek.')';
  2. $stmt = $hDB->prepare($sql);
  3. $stmt->execute();
  4. $num = $stmt->rowCount();
  5.  
  6. for ($i=0;$i<$num;$i++){
  7. $resultw = $stmt->fetch();
  8. $wr[trim($resultw['client'])][trim($resultw['truck'])][strtolower($resultw['direction'])]=$resultw['driver'];
  9. }
  10.  
  11. $smarty->assign('wr',$wr);



Kod
OUT,truck,IN,client<br /><br />
                    {foreach from=$wr key=client item=tmp}
                        {foreach from=$tmp key=truck item=drivers}
                            {$drivers.out} -- {$truck} -- {$drivers.in}  |<br />
                        {/foreach}
                    {/foreach}


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #20





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W Smarty nic.
Wcześniej pisałeś o bałaganie kiedy jakiejś pętli nie usunąłeś.
Czym teraz bałagan się objawia?


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #21





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Podałem cały mój kod. już nic zbędnego w nim nie ma - najwyzej cos brakuje. W twoim ostatnim przykładzie jest foreach a ja miałem wrzucić for - nie wiem czy to to czy jak.. Wróciliśmy do tego samego wyniku:

tu akurat są id-ki ale to nie ma większego znaczenia teraz

  1. OUT,truck,IN,client
  2.  
  3. 115 -- WGM 31K8 -- |
  4. 7 -- EKU 8EV7 -- |
  5. 65 -- EKU 8EV3 -- |
  6. 60 -- CNA 3C78 -- |
  7. 104 -- CNA 3C76 -- |
  8. 36 -- EKU 8EV1 -- |
  9. 19 -- CNA 66VC -- |
  10. 67 -- CNA 2M80 -- |
  11. 23 -- CB 9964V -- |
  12. 48 -- CB 8362W -- |
  13. 116 -- CB 8361W -- |
  14. -- EKU 8EV1 -- 22 |
  15. 61 -- -- 138 |
  16. 129 -- EKU 3ER5 -- |
  17. 92 -- CNA 3M82 -- |
  18. 117 -- EKU 3ER4 -- |
  19. 119 -- CNA 8U78 -- |
  20. 108 -- CNA 69VX -- |
  21. 128 -- CNA 39TH -- |
  22. 127 -- CNA 6T85 -- |
  23. 139 -- CNA 47TM -- |
  24. 49 -- CB 9374V -- |
  25. 141 -- CB 8342W -- |


Ten post edytował kasior 1.04.2014, 19:23:19


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #22





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Bardziej mnie interesuje co masz w $wr, dla tego fragmentu, czyli: print_r($wr);

Ten post edytował trueblue 1.04.2014, 19:32:00


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #23





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


A proszę bardzo, oto mój debug:

  1. Debug:
  2.  
  3. Array
  4. (
  5. [WGM 31K8] => Array
  6. (
  7. [out] => 115
  8. )
  9. )
  10.  
  11. Debug:
  12.  
  13. Array
  14. (
  15. [EKU 8EV7] => Array
  16. (
  17. [out] => 7
  18. )
  19. )
  20.  
  21. Debug:
  22.  
  23. Array
  24. (
  25. [EKU 8EV3] => Array
  26. (
  27. [out] => 65
  28. )
  29.  
  30. [CNA 3C78] => Array
  31. (
  32. [out] => 60
  33. )
  34.  
  35. [CNA 3C76] => Array
  36. (
  37. [out] => 104
  38. )
  39. )
  40.  
  41. Debug:
  42.  
  43. Array
  44. (
  45. [EKU 8EV1] => Array
  46. (
  47. [out] => 36
  48. )
  49.  
  50. [CNA 66VC] => Array
  51. (
  52. [out] => 19
  53. )
  54.  
  55. [CNA 2M80] => Array
  56. (
  57. [out] => 67
  58. )
  59.  
  60. [CB 9964V] => Array
  61. (
  62. [out] => 23
  63. )
  64.  
  65. [CB 8362W] => Array
  66. (
  67. [out] => 48
  68. )
  69.  
  70. [CB 8361W] => Array
  71. (
  72. [out] => 116
  73. )
  74. )
  75.  
  76. Debug:
  77.  
  78. Array
  79. (
  80. [EKU 8EV1] => Array
  81. (
  82. [in] => 22
  83. )
  84.  
  85. [] => Array
  86. (
  87. [in] => 138
  88. [out] => 61
  89. )
  90. )
  91.  
  92. Debug:
  93.  
  94. Array
  95. (
  96. [EKU 3ER5] => Array
  97. (
  98. [out] => 129
  99. )
  100.  
  101. [CNA 3M82] => Array
  102. (
  103. [out] => 92
  104. )
  105. )
  106.  
  107. Debug:
  108.  
  109. Array
  110. (
  111. [EKU 3ER4] => Array
  112. (
  113. [out] => 117
  114. )
  115.  
  116. [CNA 8U78] => Array
  117. (
  118. [out] => 119
  119. )
  120.  
  121. [CNA 69VX] => Array
  122. (
  123. [out] => 108
  124. )
  125.  
  126. [CNA 39TH] => Array
  127. (
  128. [out] => 128
  129. )
  130. )
  131.  
  132. Debug:
  133.  
  134. Array
  135. (
  136. [CNA 6T85] => Array
  137. (
  138. [out] => 127
  139. )
  140.  
  141. [CNA 47TM] => Array
  142. (
  143. [out] => 139
  144. )
  145. )
  146.  
  147. Debug:
  148.  
  149. Array
  150. (
  151. [CB 9374V] => Array
  152. (
  153. [out] => 49
  154. )
  155. )
  156.  
  157. Debug:
  158.  
  159. Array
  160. (
  161. [CB 8342W] => Array
  162. (
  163. [out] => 141
  164. )
  165. )


PS>> fajnie ,ze pomagasz smile.gif


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #24





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Czekaj, czekaj, a czemu jest kilka osobnych tablic (w powyższym debugu)?
Czy czasem nie jest tak, że np. EKU 8EV1 przynależy do dwóch różnych klientów (raz z out=36, a raz z in=22)?

Ten post edytował trueblue 1.04.2014, 19:38:54


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #25





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Dobra myśl. Sprawdziłem. W jednym przypadku jest klient - w innym nie ma. Generalnie najważniejsi sa kierowcy i trucki - klient może byc ale nie musi - to nie powinno byc najistotniejsze. Dane są wprowadzane w trakcie i np juz wiadomo,ze gość wchodzi na tego trucka ale jeszcze nie wiadomo gdzie pojedzie i dla kogo - to może wyjśc póżniej gdyż planowanie jest na cały rok. moze to rożświetli bardziej temat


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #26





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Jeśli nie interesuje Cię klient, to spróbuj tak (ale nie może być sytuacji, że jest więcej niż raz występuje ta sama rejestracja z IN (lub z OUT)):
  1. for ($i=0;$i<$num;$i++){
  2. $resultw = $stmt->fetch();
  3. $wr[$resultw['truck']][strtolower($resultw['direction'])]=$resultw['driver'];
  4. }


  1. OUT,truck,IN<br/>
  2. {foreach from=$wr key=truck item=drivers}
  3. {$drivers.out},{$truck},{$drivers.in}<br/>
  4. {/foreach}


Ten post edytował trueblue 1.04.2014, 19:44:00


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #27





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No i teraz działa smile.gif
Nie rozumiem tylko tej kolejności. Zmieniłem driver na last_name i dopisałem name i to jest w porządku:

  1. $wr[$resultw['truck']][strtolower($resultw['direction'])]=$resultw['last_name'].' '.$resultw['name'];


dlaczego jak na końcu jeszcze dopiszę tego klienta nieszczęsnego (bo może sie przecież pojawiac jak jest) to on mi wskakuje w środek zaraz po in?

  1. $wr[$resultw['truck']][strtolower($resultw['direction'])]=$resultw['last_name'].' '.$resultw['name'].' '.$resultw['client'];


EDIT>>> Już wiem. Oświeciło mnie i chyba zrozumiałem wszystko smile.gif Bo przypisany jest w bazie do IN smile.gif

A jak chciałbym w tym foreach pokazać jeszcze kilka pól z bazy na których mi zależy to jak?? {$drivers.pole} ?

Dobra. Pokminię sobie z tym jak i z tym,zeby to w tą tabelkę zapakować smile.gif Wielkie podziękowania. Zaraz klikam pomógł smile.gif

Ten post edytował kasior 1.04.2014, 19:57:26


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #28





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W razie problemów pisz. Możliwe też jest rozwiązanie sytuacji kiedy jest kilku kierowców przypisanych od IN lub OUT.


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #29





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Jest wporzo. ładnie wygląda już. Jeżeli miałbym o cos pytać to czy jest mozliwość pokazywania jakiegoś pola np w IN a niepokazywania w OUT zy to zawsze jest zespolone?
Np dopisuje sobie pole ADR i pokazuje mi sie ono po lewej i prawej stronie, a gdybym np chciał pokazywac je tylko dla prawej srony czyli IN bo akurat wtedy to mnie interesuje?


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #30





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Tym akurat sterujesz już w szablonie, dodając lub odejmując {$drivers.out} {$drivers.in}


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #31





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


{$adr.drivers.out} ?
{$drivers.adr.out} ?
{$drivers.out.adr} ?

Nic z tego nie działa.


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post
trueblue
post
Post #32





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Miałem na myśli usuwanie {$drivers.in} {$drivers.out} z szablonu.

Podane przez Ciebie rozwiązanie nie zadziała, bo nie ma takich zmiennych. Jeśli chcesz dopisywać więcej informacji do IN oraz OUT, musisz przebudować skrypt PHP:
  1. $wr[$resultw['client']][$resultw['truck']][strtolower($resultw['direction'])]=array('driver'=>$resultw['driver'],'adres'=>$resultw['adres']);

Wcześniej pod "in" była zmienna, teraz jest tablica, więc w Smarty odwołasz się tak:
{$drivers.in.driver} zamiast {$drivers.in}
no, a dla adresu {$drivers.in.adres}, dla innych pól musisz rozszerzyć powyższą tablicę w PHP, w szablonie natomiast odwołasz się analogicznie jak dla tych dwóch.
Oczywiście Twoje zapytanie do bazy, dla przykładu powyżej, zwraca pole adres, być może u Ciebie nazywa się inaczej.

Ten post edytował trueblue 3.04.2014, 09:26:44


--------------------
Go to the top of the page
+Quote Post
kasior
post
Post #33





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Tak to właśnie zrobiłem zanim zdazyłes napisać smile.gif Dzieki.


--------------------
Zapraszam do odwiedzenia mojej strony.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:52