Sprawa dosyæ prostawa chyba:
Pobieram dane z bazy w pêtli while

  1. <?php
  2. echo <<<KONIEC
  3. <form action="index.php?p=tabela" method="post">
  4. <input type="hidden" name="opcja" value="wynik" />
  5. KONIEC;
  6.  if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  7. if (mysql_select_db($mysql_baza)) {
  8. $wynik = mysql_query("SELECT * FROM $mysql_tabela WHERE dzien='$data'");
  9. while($dane = mysql_fetch_object($wynik)){
  10. $poj = mysql_fetch_object(mysql_query("SELECT * FROM $mysql_tabela WHERE dzien='$data' AND login='bla'"));
  11.  
  12. // tutaj if-y przeliczaja mi dane pobrane z bazy do inputów
  13.  
  14. echo <<<KONIEC
  15. <br>
  16. <table border="0" width="100%" cellspacing="1" cellpadding="3">
  17. <tr bgcolor="#000000">
  18. <td width="100%" align="center" colspan="11"><b>$dane->login</b><input type="hidden" name="loginek" value="$dane->login"></td>
  19. </tr>
  20. <tr bgcolor="#000000">
  21. <td width="5%" align="center"><b>dz.</b></td>
  22. <td width="10%" align="center"><b>kraj</b></td>
  23. <td width="50%" align="center"><b>mecz</b></td>
  24. <td width="10%" align="center"><b>godz.</b></td>
  25. <td width="9%" align="center"><font size="1"><b>twój wynik</b></font></td>
  26. <td width="9%" align="center"><font size="1"><b>wynik meczu</b></font></td>
  27. <td width="7%" align="center"><font size="1"><b>pkt</b></font></td>
  28. </tr>
  29. <tr bgcolor="#000000">
  30. <td width="5%" align="center">$dane->dzien<input type="hidden" name="dzien" value="$dane->dzien"></td>
  31. <td width="10%" align="center" /><img src="$dane->k1"></td>
  32. <td width="50%" align="center" />$dane->m1</td>
  33. <td width="10%" align="center" />$dane->g1</td>
  34. <td width="9%" align="center" />$dane->w1 : $dane->w2</td>
  35. <td width="9%" align="center" />$poj->w1 : $poj->w2</td>
  36. <td width="7%" align="center" />$b1</td>
  37. </tr>
  38. <tr bgcolor="#000000">
  39. <td width="5%" align="center">$dane->dzien</td>
  40. <td width="10%" align="center" /><img src="$dane->k2"></td>
  41. <td width="50%" align="center" />$dane->m2</td>
  42. <td width="10%" align="center" />$dane->g2</td>
  43. <td width="9%" align="center" />$dane->w3 : $dane->w4</td>
  44. <td width="9%" align="center" />$poj->w3 : $poj->w4</td>
  45. <td width="7%" align="center" />$b2</td>
  46. </tr>
  47. <tr bgcolor="#000000">
  48. <td width="5%" align="center">$dane->dzien</td>
  49. <td width="10%" align="center" /><img src="$dane->k3"></td>
  50. <td width="50%" align="center" />$dane->m3</td>
  51. <td width="10%" align="center" />$dane->g3</td>
  52. <td width="9%" align="center" />$dane->w5 : $dane->w6</td>
  53. <td width="9%" align="center" />$poj->w5 : $poj->w6</td>
  54. <td width="7%" align="center" />$b3</td>
  55. </tr>
  56. <tr bgcolor="#000000">
  57. <td width="5%" align="center">$dane->dzien</td>
  58. <td width="10%" align="center" /><img src="$dane->k4"></td>
  59. <td width="50%" align="center" />$dane->m4</td>
  60. <td width="10%" align="center" />$dane->g4</td>
  61. <td width="9%" align="center" />$dane->w7 : $dane->w8</td>
  62. <td width="9%" align="center" />$poj->w7 : $poj->w8</td>
  63. <td width="7%" align="center" />$b4</td>
  64. </tr>
  65. <tr bgcolor="#000000">
  66. <td width="5%" align="center">$dane->dzien</td>
  67. <td width="10%" align="center" /><img src="$dane->k5"></td>
  68. <td width="50%" align="center" />$dane->m5</td>
  69. <td width="10%" align="center" />$dane->g5</td>
  70. <td width="9%" align="center" />$dane->w9 : $dane->w10</td>
  71. <td width="9%" align="center" />$poj->w9 : $poj->w10</td>
  72. <td width="7%" align="center" />$b5</td>
  73. </tr>
  74. <tr bgcolor="#000000">
  75. <td width="5%" align="center">$dane->dzien</td>
  76. <td width="10%" align="center" /><img src="$dane->k6"></td>
  77. <td width="50%" align="center" />$dane->m6</td>
  78. <td width="10%" align="center" />$dane->g6</td>
  79. <td width="9%" align="center" />$dane->w11 : $dane->w12</td>
  80. <td width="9%" align="center" />$poj->w11 : $poj->w12</td>
  81. <td width="7%" align="center" />$b6</td>
  82. </tr>
  83. <tr bgcolor="#000000">
  84. <td width="5%" align="center">$dane->dzien</td>
  85. <td width="10%" align="center" /><img src="$dane->k7"></td>
  86. <td width="50%" align="center" />$dane->m7</td>
  87. <td width="10%" align="center" />$dane->g7</td>
  88. <td width="9%" align="center" />$dane->w13 : $dane->w14</td>
  89. <td width="9%" align="center" />$poj->w13 : $poj->w14</td>
  90. <td width="7%" align="center" />$b7</td
  91. </tr>
  92. <tr bgcolor="#000000">
  93. <td width="5%" align="center">$dane->dzien</td>
  94. <td width="10%" align="center" /><img src="$dane->k8"></td>
  95. <td width="50%" align="center" />$dane->m8</td>
  96. <td width="10%" align="center" />$dane->g8</td>
  97. <td width="9%" align="center" />$dane->w15 : $dane->w16</td>
  98. <td width="9%" align="center" />$poj->w15 : $poj->w16</td>
  99. <td width="7%" align="center" />$b8</td
  100. </tr>
  101. <tr bgcolor="#000000">
  102. <td width="100%" align="center" colspan="11">
  103. [tr: <b>$f</b>]-<input type="hidden" name="v5" value="$f" size="2">
  104. [tr1: <b>$g</b>]-<input type="hidden" name="v1" value="$g" size="2">
  105. [nt: <b>$h</b>]-<input type="hidden" name="v0" value="$h" size="2">
  106. [pkt: <b>$pkt1</b>]-<input type="hidden" name="pkt" value="$pkt1" size="2"></td>
  107. </tr>
  108. </table>
  109. KONIEC;
  110. }
  111. } else echo "Nie mo¿na po³±czyæ siê z baz±";
  112. mysql_close($baza);
  113. } else echo "Nie mo¿na po³±czyæ siê z serwerem MySQL";
  114. }
  115. echo <<<KONIEC
  116. <input type="submit" value=" DODAJ!" />
  117. </form>
  118. KONIEC;
  119. ?>


Wszystko piêknie siê pobiera i wy¶wietla.
Teraz po naci¶niêciu DODAJ chcia³bym aby dane z tej pêtli uaktualni³y mi opowiednie pola w bazie.
I do tego u¿ywam nastêpuj±cego kodu:

  1. <?php
  2. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  3. if (mysql_select_db($mysql_baza)) {
  4. $wynik = mysql_query("UPDATE $mysql_tabela SET v5='$v5', v1='$v1', v0='$v0', pkt='$pkt' WHERE dzien='$data' and login='$loginek'");
  5.  } else echo "Nie mo¿na po³±czyæ siê z baz±";
  6. mysql_close($baza);
  7. } else echo "Nie mo¿na po³±czyæ siê z serwerem MySQL";
  8. if ($wynik) {
  9. echo "Wyniki dodane";
  10. }else{
  11. echo "<font color=\"red\">Wyniki nie dodane</font>";
  12. }
  13. ?>


No i baza siê updatuje tyle tylko, ¿e pobieram z bazy powiedzmy 20 (ale za jaki¶ czas mo¿e byæ ich i 500+) pozycji (powiela je pêtla while), a update nastepuje tylko w jednej (z tego co zauwa¿y³em ostatniej pobranej pozycji), a chcia³bym naraz updatowaæ wszystkie....

Wyczyta³em co¶ o pêtli foreach ale ni kuta nie wiem jak j± tutaj zastosowaæ.
Jest jaki¶ sposób aby skrypt wykona³ w tym przypadku update dla wszystkich pozycji w tabeli na raz?
Problemu wiêkszego by nie by³o gdyby nie to, ¿e pola do aktualizacji s± ró¿ne dla ka¿dego loginu... tzn (¿eby dok³adnie zobrazowaæ) - dla ka¿dego pola loginek pola v5, v1, v0, pkt mog± mieæ ró¿n± warto¶æ.