Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> rysowanie tabelki
Gligamesh
post
Post #1





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


Witam

zdenerwowało mnie ciągłe powtarzanie kodu (gdy potrzebuje wylistować zawartość w tabelce) więc zrobiłem sobie coś takiego

  1. <?php
  2. function drow_table_head()
  3. {
  4. $arg_list = func_get_args();
  5. $verb = '<tr class="'.$arg_list[0].'">'."\n";
  6. for($i = 1; $i < func_num_args(); $i++) 
  7. {
  8. $arg = explode('|', $arg_list[$i]);
  9. $verb.='<td style="width:'.$arg[0].'px">'.$arg[1].'</td>'."\n";
  10. }
  11. $verb.='</tr>'."\n";
  12.  
  13. return $verb;
  14. }
  15.  
  16. function add_table_row()
  17. {
  18. $arg_list = func_get_args();
  19. $verb = '<tr class="'.$arg_list[0].'">'."\n";
  20. for($i = 1; $i < func_num_args(); $i++) 
  21. {
  22. $verb.='<td>'.$arg_list[$i].'</td>'."\n";
  23. }
  24. $verb.='</tr>'."\n";
  25.  
  26. return $verb;
  27. }
  28.  
  29. ?>


przykładowe wywołanie

  1. <?php
  2. $i=0;
  3. $drow= '<table>';
  4. $drow.= drow_table_head('title','30|lp.','150|Login','200|Adres e-mail', '75|','75|');
  5.  
  6. $sql = mysql_query("SELECT login,email FROM `db_user` ORDER BY login");
  7.  
  8. if(!$sql)
  9. echo '<div class="error">błąd w zapytaniu - '.mysql_errno().' - '.mysql_error().'</div>';
  10.  
  11. $style = array('color','white'); 
  12.  
  13. while($user = mysql_fetch_assoc($sql)) 
  14. {
  15. $i++;
  16. $drow.= add_table_row($style[$i%2],$i,$user['login'],'<a href="mailto:'.$user['email'].'">'.$user['email'].'</a>','edytuj','usuń');
  17. }
  18. $drow.='</table>';
  19.  
  20. echo $drow;
  21. ?>


chciałbym usłyszeć wasz komentarz, nie wiem czy idę w dobrym kierunku bo generalnie pierwszy raz przybrałem taki tok działania. Nie za bardzo jestem przekonany też co do wydajności takiego rozwiązania. Jakiekolwiek sugestie, uwagi mile widziane.

Ten post edytował Gligamesh 21.01.2008, 23:43:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
MMX3
post
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 9
Dołączył: 26.01.2004
Skąd: Poznań

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


2 funckje prasowanie stringów.... nie prościej zrobić klase np. table która będzie zawierała array z wierszami?
i proste to będzie

  1. <?php
  2. $field = mysql_list_fields('baza', 'tabela', $link);
  3. $columns = mysql_num_fields($field);
  4.  for ($i = 0; $i < $columns; $i++) {
  5.  $fields[] = mysql_field_name($field, $i);
  6.  }
  7. $t = new table($fields)
  8. $res = mysql_query($sql);
  9. while($obj = mysql_fetch_object($res)) {
  10. $t->addrow($obj);
  11. }
  12. ?>


Klasy ułatwiają życie. Pozdro


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





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


wolałbym takie rozwiązanie jednak jestem za słaby by coś takiego stworzyć, postaram się coś rozgryźć z tego przykładu ale prawdę mówiąc wiele mi nie mówi..
Go to the top of the page
+Quote Post

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: 19.08.2025 - 01:55