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

Posty w temacie


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 - 21:54