Witam zmagam się cały czas z kodem. Co prawda udało mi się już wyświetlić tabelę tak jak bym chciał. Teraz tylko pozostaje kwestia zrobienie formularza i odpowiedniego skryptu edycji bazy danych... Oto co uradziłem:
  1. echo "<form method=post> //zaczęcie formularza
  2. <input type=hidden name='send' value='1'>
  3. <table border=1 cellpadding=0 cellspacing=0 class='klasaUczniowie'>
  4.  
  5. <tr style='background-color: #364575;'>"; //Rozpoczęcie nagłówka
  6.  
  7. $zakreskolumn = "SELECT * FROM oceny_1";
  8. $kolumny=mysql_query($zakreskolumn);
  9.  
  10. if(mysql_num_fields($kolumny)>0){ //Jesli są jakieś kolumny...
  11. $liczbakolumn=mysql_num_fields($kolumny); //zliczanie ile pól
  12. for($x=1;$x<$liczbakolumn;$x++){
  13. echo "<td colspan=2>";
  14. echo "$x";
  15. echo"</td>";
  16. }
  17. echo "<td colspan=2>";
  18. echo "SUMA";
  19. echo"</td>";
  20. echo "</tr>"; //koniec nagłówka
  21. }
  22.  
  23.  
  24.  
  25. $zakres2 = "SELECT * FROM oceny_1";
  26. $wynik2=mysql_query($zakres2);
  27.  
  28.  
  29. if(mysql_num_rows($wynik2)>0){
  30.  
  31. $max=25;
  32.  
  33. while($r = mysql_fetch_array($wynik2)) {
  34. echo "<tr>";
  35.  
  36. for($z=1;$z<=mysql_num_rows($wynik2);$z++){
  37. echo "<td><input type=text name=ocena$z value=".$r["$z"]." size='1'></td>";
  38. echo "<td>".$max."</td>";
  39. if(@$_POST["send"]==1){ //jeśli formularz został wysłany zrób update w mysql
  40. $zz=$z-1;
  41. $zapytanie2= "UPDATE `dziennik`.`oceny_1` SET `".$z."` = '".$_POST["ocena$z"]."', `2` = '31' WHERE `oceny_1`.`id` ='".$r["$zz"]."'";
  42. mysql_query($zapytanie2) or die (mysql_error());
  43. echo "yeah dodano!!";
  44. }
  45. }
  46. echo "</tr>";
  47. }
  48. }
  49. echo "</table>
  50. <input type=submit value='zmień!'>
  51. </form>";


Oczywiście gdy klikam na submit, to zmienia mi na to co wpisałem w pierwszej komórce we wszystkich wierszach w danej kolumnie. A chcę zmienić dokładnie to pole, które zmieniam. No i oczywiście uruchomić nieszczęsne inne pola mysql, bo to "31" dałem przykładowo. Jaki skrypt należałoby tu dać? sad.gif




Już mi się udało. Dla ciekawych:
  1. while($r = mysql_fetch_array($wynik2)) {
  2. $current2=current($r);
  3. $pola=count($r);
  4. echo "<tr>";
  5. for($z=1;$z<$liczbakolumn;$z++){
  6.  
  7. echo '<td><input type=text name=ocena'.$current2.$z.' value='.$r["$z"].' size=1></td>';
  8. echo "<td>".$max."</td>";
  9. if(@$_POST["send"]==1){
  10. $zz=$z-1;
  11. $zapytanie2= "UPDATE `dziennik`.`oceny_1` SET `".$z."` = '".$_POST["ocena$current2$z"]."' WHERE `oceny_1`.`id` ='".$current2."'";
  12. mysql_query($zapytanie2) or die (mysql_error());
  13. echo "yeah dodano!!";
  14. }
  15. }
  16. echo "</tr>";
  17. }

Po prostu musiałem nadać współrzędne w tabelce htmlowej poprzez nazwanie każdego inputa name=ocena$current2$z. Nie wpadłem wcześniej na zliczenie elementów tablicy asocjacyjnej $r, tylko szukałem skomplikowanych pętli.

Temat do zamknięcia.