Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie macierzy z nazwą kolumn i wierszy
Forum PHP.pl > Forum > Przedszkole
pawelwel

Poniższy kod generuje i jedną nazwę wieksza (ilość) za dużo...
--------------------------
TYP
----------------------- |
nazwa A A |
ilosc A A |
ilosc |
-------------------------
  1. <?php
  2. $k=1;
  3. $n=2;//wiersze
  4. $m=2;//kolumny
  5.  
  6.  
  7. for ($i=0; $i<$n; $i++)
  8. {
  9. for ($j=0; $j<$m; $j++)
  10. {
  11. $macierz[$i][$j]='A';
  12. $k++;
  13. }
  14. }
  15. echo '<table border="1">';
  16. echo ' <tr>';
  17. echo ' <td>TYP</td>';
  18. echo ' </tr>';
  19. echo ' <tr>';
  20. echo ' <td>';
  21.  
  22. echo '<table border="1">';
  23. echo '<tr>';
  24. echo '<td>nazwa</td>';
  25. for ($i=0; $i<$n; $i++)
  26. {
  27. for ($j=0; $j<$m; $j++)
  28. {
  29. echo '<td>';
  30. echo $macierz[$i][$j];
  31. echo '</td>';
  32. }
  33. echo '</tr>';
  34.  
  35. echo '<td>ilosc</td>';
  36. }
  37. echo '</table>';
  38. echo ' </td>';
  39. echo ' </tr>';
  40. echo '</table>';
  41. ?>
  42.  
  43.  
  44.  
Kshyhoo
Dwa przykłady do przestudiowania smile.gif
  1. $poziome=10;
  2. $pionowe=10;
  3.  
  4. echo '<table border="1" cellpadding ="1" cellspacing="0" style="text-align: right;">';
  5. for($i=0; $i<=$pionowe; $i++){
  6. echo '<tr>';
  7. for($j=0;$j<=$poziome; $j++){
  8. if(($i == 0) && ($j == 0)) echo '<td width="25px" style="background: #c0c0c0;">X</td>';
  9. elseif($i == 0) echo '<td style="background: #c0c0c0;">'.$j.'</td>';
  10. elseif($j == 0) echo '<td style="background: #c0c0c0;">'.$i.'</td>';
  11. else echo '<td width="25px">'.$i*$j.'</td>';
  12. }
  13. echo '</tr>';
  14. }
  15. echo '</table><br /><br />';
  16.  
  17.  
  18. echo '<table rules="all" cellpadding="4" style="font:11px Arial,Verdana;border:2px solid #ccc;">'."\n";
  19. for ($j = 1; $j <= 10; $j++) {
  20. echo "<tr>\n";
  21. for ($i = 1; $i <= 10; $i++) {
  22. $liczba = $i*$j;
  23. if ($liczba%2 > 0)
  24. echo '<td bgcolor="green">';
  25. else
  26. echo '<td bgcolor="red">';
  27. echo $liczba;
  28. echo "</td>\n";
  29. }
  30. echo "</tr>\n";
  31. }
  32. echo "</table>";
pawelwel
Cytat(Kshyhoo @ 15.12.2013, 22:27:51 ) *
Dwa przykłady do przestudiowania smile.gif


Ha, chyba w tym stuleciu tego nie pojmę smile.gif
Już wiem dlaczego nie praktykuje się rozliczanie za kod php w formie "za linię kodu" biggrin.gif

Nie można mojego kodu przerobić ? -przynajmniej go rozumiem....
Pozdrawiam
Kshyhoo
No przecież wystarczy Twoje dane wrzucić do moich przykładów i pójdzie...
pawelwel
Cytat(Kshyhoo @ 15.12.2013, 23:05:35 ) *
No przecież wystarczy Twoje dane wrzucić do moich przykładów i pójdzie...


Dla mnie nie jest to takie oczywiste.... jutro postaram się przeglądnąć i zrozumieć kod, inaczej tego nie zmienię,
tym bardziej że pierwszy wiersz tabeli jest inny niż bym chciał.
Kshyhoo
Jakie dane chcesz włożyć do tebel? Skąd je bierzesz i czy są generowane dynamicznie?

  1. <?php
  2. $k=1;
  3. $n=2;//wiersze
  4. $m=2;//kolumny
  5.  
  6.  
  7. for ($i=0; $i<$n; $i++) {
  8. for ($j=0; $j<$m; $j++) {
  9. $macierz[$i][$j]='A';
  10. $k++;
  11. }
  12. }
  13. echo '<table border="1">'."\n";
  14. echo ' <tr>'."\n";
  15. echo ' <td colspan="'.$i.'" style="width: 100px">TYP</td>'."\n";
  16. echo ' </tr>'."\n";
  17. echo ' <tr>'."\n";
  18. echo ' <td>nazwa</td><td>$znienna1</td><td>$znienna2</td>'."\n";
  19. echo ' </tr>'."\n";
  20.  
  21. for ($i=0; $i<$n; $i++) {
  22. echo ' <tr>'."\n";
  23. echo ' <td>ilosc</td>'."\n";
  24. for ($j=0; $j<$m; $j++) {
  25. echo ' <td>';
  26. echo $macierz[$i][$j];
  27. echo '</td>'."\n";
  28. }
  29. echo ' </tr>'."\n";
  30. }
  31. echo '</table>'."\n";
  32. ?>
pawelwel
Pole TYP jest wprowadzane z formularza.
Pozostałe dane to pole formularza
następny plik wprowadzi je do mysql

W tym czasie na siłę zmieniłem tabelę, innego pomysłu nie mam... może kiedyś go uporządkuję, po co linię jestem mądrzejszy....
  1.  
  2. <?php
  3. $k=1;
  4. $n=3;//wiersze
  5. $m=5;//kolumny
  6.  
  7. $typ = $_POST['uzupelnij']; // przypisanie zmiennych formularza
  8.  
  9. for ($i=0; $i<$n; $i++)
  10. {
  11. for ($j=0; $j<$m; $j++)
  12. {
  13. $macierz[$i][$j]='<input type="text" name= ';
  14. $macierz2[$i][$j]=' size=3 maxsize=3 />';
  15. $macierz[$i][$j]=$macierz[$i][$j].'dane'.$i.$j.$macierz2[$i][$j];
  16. $ij[$i][$j]=$i.$j;
  17. $k++;
  18. }
  19. }
  20. echo '<form action="sssssssssssssssssssss.php" method="get">';
  21. echo '<table border="1">';
  22. echo ' <tr>';
  23. echo ' <td>';
  24. echo $typ;
  25. echo '</td>';
  26. echo ' </tr>';
  27. echo ' <tr>';
  28. echo ' <td>';
  29.  
  30. echo '<table border="1">';
  31. echo '<tr>';
  32. $macierz [0] [0]='';
  33. $ij [0] [0]='--nazwa-->';
  34. $macierz [1] [0]='jedmostka->';
  35. $ij [1] [0]='';
  36. $macierz [2] [0]='--ilosc--->';
  37. $ij [2] [0]='';
  38.  
  39. //for ($p=1; $p<$m; $p++)
  40. //{
  41. //$macierz [0] [$p]='nazwa'.$p;
  42. //$ij [0] [$p]='';
  43. //}
  44.  
  45.  
  46. for ($i=0; $i<$n; $i++)
  47. {
  48.  
  49. for ($j=0; $j<$m; $j++)
  50. {
  51.  
  52. echo '<td>';
  53. echo $macierz[$i][$j];
  54. echo $ij[$i][$j];
  55.  
  56.  
  57. echo '</td>';
  58. }
  59. echo '</tr>';
  60.  
  61. }
  62. echo '</table>';
  63. echo ' </td>';
  64. echo ' </tr>';
  65. echo '</table>';
  66. echo '<input type="submit" value="dodaj" name="dodaj" />';
  67. echo '</form>';
  68. ?>
  69.  
Kshyhoo
Zobacz mój kod i napisz dokładnie, co ma robić Twój skrypt.
pawelwel
ilość kolumn będzie dynamiczna - teraz skrypt sie rozlatuje
ilość wierszy bez zmian
i jeszcze jedna rzecz, zamiast jednego pola "nazwa" ma być "jednostka"

pole nazwa i A będą przenoszone do mysql.



Teraz opis.
Wcześniej będzie deklaracja ilości wierszy
Pole TYP będzie wprowadzone z poprzedniego formularza metodą POST
Pozostałe pola będą do wpisania ręcznego.
Wpisane pola będą przenoszone do mysql wraz z polem TYP
pola nazwa i ilość i jednostka będą stałe

Kshyhoo
Ilość kolumn - nie wiem, jakie dane chcesz "włożyć" to tabeli, więc nie wiem, jaka ma być tabela. Dlatego pisałem, jak ma wygladać skrypt i co ma robić. Jakie komórki mają być inputami np., itp..

"Wcześniej będzie deklaracja ilości wierszy" - jak? Przez formularz?

I trochę to dziwne, bo deklarujesz $m=2;//kolumny a potem "rysujesz" tabelkę nazwa A A, czyli trzy...

  1. <?php
  2. $k=1;
  3. $n=2;//wiersze
  4. $m=2;//kolumny
  5.  
  6. for ($i=0; $i<$n; $i++) {
  7. for ($j=0; $j<$m; $j++) {
  8. $macierz[$i][$j]='A';
  9. $k++;
  10. }
  11. }
  12.  
  13. $col = $m+1;
  14. echo '<table border="1">'."\n";
  15.  
  16. echo ' <tr>'."\n";
  17. echo ' <td colspan="'.$col.'">TYP</td>'."\n";
  18. echo ' </tr>'."\n";
  19.  
  20. echo ' <tr>'."\n";
  21. echo ' <td style="width: 100px">nazwa</td>'."\n";
  22. for($i=1; $i<=$m; $i++) {
  23. echo ' <td style="width: 100px">$nazwa'.$i.'</td>'."\n";
  24. }
  25. echo ' </tr>'."\n";
  26.  
  27. echo ' <tr>'."\n";
  28. echo ' <td style="width: 100px">jednostka</td>'."\n";
  29. for($i=1; $i<=$m; $i++) {
  30. echo ' <td style="width: 100px">szt</td>'."\n";
  31. }
  32. echo ' </tr>'."\n";
  33.  
  34. for ($i=0; $i<$n; $i++) {
  35. echo ' <tr>'."\n";
  36. echo ' <td>ilosc</td>'."\n";
  37. for ($j=0; $j<$m; $j++) {
  38. echo ' <td>';
  39. echo $macierz[$i][$j];
  40. echo '</td>'."\n";
  41. }
  42. echo ' </tr>'."\n";
  43. }
  44. echo '</table>'."\n";
  45. ?>
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.